home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu611.dms / pu611.adf / TVtitles2.AMOS / TVtitles2.amosSourceCode
AMOS Source Code  |  1994-06-13  |  55KB  |  2,601 lines

  1. Set Buffer 25
  2. Trap Reserve As Work 100,1000000000
  3. Request Wb 
  4. 'Break Off 
  5. On Error Goto EERR99
  6.  
  7. 'load piccys in
  8. Dir$="TT2:TT2_system/"
  9. If Length(6)=0 Then Extension_5_0120 "TV",6
  10. If Length(7)=0 Then Extension_5_0120 "TV1",7
  11. If Length(8)=0 Then Extension_5_0120 "TV2",8
  12. If Length(9)=0 Then Extension_5_0120 "TV3",9
  13. If Length(10)=0 Then Extension_5_0120 "TV4",10
  14. If Length(11)=0 Then Extension_5_0120 "TV5",11
  15. If Length(12)=0 Then Extension_5_0120 "TV6",12
  16. If Length(13)=0 Then Extension_5_0120 "TV7",13
  17. If Length(14)=0 Then Extension_5_0120 "TV8",14
  18. If Length(15)=0 Then Extension_5_0120 "TV9",15
  19. If Length(16)=0 Then Extension_5_0120 "TV10",16
  20. If Length(17)=0 Then Extension_5_0120 "TV11",17
  21. If Length(18)=0 Then Extension_5_0120 "TV12",18
  22. If Length(19)=0 Then Extension_5_0120 "TV13",19
  23. If Length(20)=0 Then Extension_5_0120 "TV14",20
  24.  
  25. STRT:
  26. 'LINES=20 : BUFF=20
  27. 'BBUFF=100 
  28. Gosub LODPREF
  29.  
  30. STRT1:
  31. Timer=0 : LINE=1
  32. FBUFF=300
  33.  
  34. Gosub CLIST1
  35.  
  36. 'var list
  37. 'pr$()=line command
  38. 'fo$()=font name : fo()=font number:fline=font line number 
  39. 'in()=ink col
  40. 'da$()=data
  41. 'tat()=type of text print
  42. 'st()=style of text
  43. 'co$()=command amin-amax =min and max of A. same for b&c and coh$()=help 
  44. 'A & B & C D E F G H() are other vars for the commands 
  45. 'clr()= are the colours
  46. 'cr() cg() cb()= RED/GREEN/BLUE
  47. 'lines=max of prog lines 
  48. 'line=line no. 
  49. 'com=max of comms
  50. 'clne=comm line no.
  51. 'ft$=font list ft=number of font 
  52. 'err=error number er$()=error mess 
  53.  
  54.  
  55. Dim PR$(LINES),FO$(LINES,BUFF),FO(LINES,BUFF),IN(LINES,BUFF),DA$(LINES,BUFF),TAT(LINES,BUFF),ST(LINES,BUFF)
  56. Dim CO$(30),AMIN(COM),AMAX(COM),BMIN(COM),BMAX(COM),CMIN(COM),CMAX(COM),COH$(COM)
  57. Dim A(LINES),B(LINES),C(LINES),D(LINES),E(LINES),F(LINES),G(LINES),H(LINES),CLR(7),CR(8),CG(8),CB(8)
  58. Dim ER$(15),FX$(20)
  59. Global FO$(),IN(),DA$(),TAT(),CO$(),A(),B(),C(),D(),E(),F(),G(),H(),AMIN(),AMAX(),BMIN(),BMAX(),CMIN(),CMAX(),COH$()
  60. Global G,CO2,Z$,N$,AUTO$,AUTOSAVE,AUTO,ST(),PR$(),LINES,LINE,CLR(),SA$,CLNE,COM
  61. Global FBUFF,FO(),FLINE,DLINE,BUFF,CR(),CG(),CB(),ERR,ER$()
  62. Global MTET,BBUFF,ERMI,ERMA,MC,LINE,LINES,BUFF,BBUFF
  63.  
  64. Global PTH$,TUNE$,KEYIN$,KEYOUT$,TIME,TIME$
  65. Global REQ$,REQ1$,REQ2$,REQ3$,REQ4$,FILE$,FX$(),FXM
  66.  
  67. Proc DEFCOL
  68. LINE=1 : CLNE=1 : FLINE=1 : DLINE=1
  69. Gosub CLIST
  70. Gosub ELIST
  71. Gosub FLIST
  72.  
  73.  
  74. LU40:
  75. MTET=0
  76. Trap Set Font 1
  77.    Unpack 6 To 0 : Limit Mouse 128,42 To 448,300 : Show 
  78.    Colour Back(Colour(0)) : Wait Vbl 
  79. Amos To Front 
  80.  
  81.       For F=1 To 7
  82.       Trap Screen Close F
  83.       Next F
  84.  
  85.    Reserve Zone : Reserve Zone 30
  86.       Restore 1000
  87.    For F=1 To 17 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  88.  
  89. HH=0 : MC=0
  90.    Proc PRLIST
  91. Text 230,226,TIME$
  92. LU46:
  93.  
  94.          HH=Zone(X Mouse,Y Mouse)
  95.          If Mouse Click Then MC=1 Else MC=0
  96.  
  97.  
  98.       If HH=1 and MC=1 Then Gosub LODPRO : Goto LU40
  99.       If HH=2 and MC=1 Then Proc PROGSAVE : Goto LU40
  100.       If HH=3 and MC=1 Then Gosub TEST : Goto LU40
  101.       If HH=4 and MC=1 Then Gosub PRORUN : Goto LU40
  102.       If HH=5 and MC=1 Then Gosub DELINE : Goto LU40
  103.       If HH=6 and MC=1 Then Gosub EDTPRO
  104.       If HH=7 and MC=1 Then Gosub CLEAR_LINE : Goto LU40
  105.       If HH=8 and MC=1 Then Gosub INS_LINE : Goto LU40
  106.       If HH=9 and MC=1 and LINE>1 Then Dec LINE : Proc PRLIST
  107.       If HH=10 and MC=1 and LINE<LINES Then Inc LINE : Proc PRLIST
  108.       If HH=11 and MC=1 Then Gosub FOGET : Goto LU40
  109.       If HH=12 and MC=1 Then Proc FOSHOW : Goto LU40
  110.       If HH=13 and MC=1 Then Gosub LODTUNE : Goto LU40
  111.       If HH=14 and MC=1 Then Gosub DEFPREF : If CHANGE=0 Then Goto LU40 Else Gosub SAVPREF : If CHANGE>1 Then Goto LU40 Else End 
  112.          If HH=17 and MC=1 Then Proc PROGSAVE : System 
  113. 'Locate 0,0 : Print HH;"  "
  114. 'If Timer>AUTOSAVE Then AUTOSAVE=0 
  115. 'If AUTO$<>"" and AUTOSAVE=0 Then Proc PPPSAV
  116.  
  117. Goto LU46
  118.  
  119. '------------- 
  120. 'gosubs
  121. '------------- 
  122. LODTUNE:
  123.       REQ1$="Load_A_MED_Tune" : REQ2$=Dir$ : REQ3$="#?" : REQ4$=TUNE$ : Proc _GET_FILE
  124.       TUNE$=REQ$
  125.  
  126.    If TUNE$="" Then Goto LODTUNE2
  127. LODTUNE5:
  128.    Trap Med Load TUNE$,4
  129.    If Errtrap Then Goto LODTUNE2
  130. Goto LODTUNE3
  131. LODTUNE2:
  132.    ERR=4 : Proc MESS
  133. LODTUNE3:
  134. Return 
  135.  
  136. DELINE:
  137.  
  138.    ERR=7 : Proc MESS
  139.    If MC=2 Then Return 
  140.  
  141. DELINE1:
  142.  
  143.    If LINE=LINES Then Goto DELINE2
  144.  
  145.    PR$(LINE)=PR$(LINE+1)
  146.    A(LINE)=A(LINE+1)
  147.    B(LINE)=B(LINE+1)
  148.    C(LINE)=C(LINE+1)
  149.    D(LINE)=D(LINE+1)
  150.    E(LINE)=E(LINE+1)
  151.    F(LINE)=F(LINE+1)
  152.    G(LINE)=G(LINE+1)
  153.    H(LINE)=H(LINE+1)
  154.  
  155.    For F=1 To BUFF
  156.    FO$(LINE,F)=FO$(LINE+1,F)
  157.    IN(LINE,F)=IN(LINE+1,F)
  158.    DA$(LINE,F)=DA$(LINE+1,F)
  159.    TAT(LINE,F)=TAT(LINE+1,F)
  160.    ST(LINE,F)=ST(LINE+1,F)
  161.    Next F
  162.  
  163.    Inc LINE
  164. Goto DELINE1
  165.  
  166. DELINE2:
  167.  
  168.    PR$(LINE)=""
  169.    A(LINE)=0
  170.    B(LINE)=0
  171.    C(LINE)=0
  172.    D(LINE)=0
  173.    E(LINE)=0
  174.    F(LINE)=0
  175.    G(LINE)=0
  176.    H(LINE)=0
  177.  
  178.    For F=1 To BUFF
  179.    FO$(LINE,F)=""
  180.    IN(LINE,F)=0
  181.    DA$(LINE,F)=""
  182.    TAT(LINE,F)=0
  183.    ST(LINE,F)=0
  184.    Next F
  185.  
  186. LINE=1
  187. Return 
  188.  
  189. INS_LINE:
  190.  
  191.    ERR=12 : Proc MESS
  192.    If MC=2 Then Return 
  193.  
  194. SA1=LINE
  195. LINE=LINES
  196. INS_LINE1:
  197.  
  198.    If LINE=SA1 Then Goto INS_LINE2
  199.  
  200.    PR$(LINE)=PR$(LINE-1)
  201.    A(LINE)=A(LINE-1)
  202.    B(LINE)=B(LINE-1)
  203.    C(LINE)=C(LINE-1)
  204.    D(LINE)=D(LINE-1)
  205.    E(LINE)=E(LINE-1)
  206.    F(LINE)=F(LINE-1)
  207.    G(LINE)=G(LINE-1)
  208.    H(LINE)=H(LINE-1)
  209.  
  210.    For F=1 To BUFF
  211.    FO$(LINE,F)=FO$(LINE-1,F)
  212.    IN(LINE,F)=IN(LINE-1,F)
  213.    DA$(LINE,F)=DA$(LINE-1,F)
  214.    TAT(LINE,F)=TAT(LINE-1,F)
  215.    ST(LINE,F)=ST(LINE-1,F)
  216.    Next F
  217.  
  218.    Dec LINE
  219. Goto INS_LINE1
  220.  
  221. INS_LINE2:
  222.  
  223.    PR$(LINE)=""
  224.    A(LINE)=0
  225.    B(LINE)=0
  226.    C(LINE)=0
  227.    D(LINE)=0
  228.    E(LINE)=0
  229.    F(LINE)=0
  230.    G(LINE)=0
  231.    H(LINE)=0
  232.  
  233.    For F=1 To BUFF
  234.    FO$(LINE,F)=""
  235.    IN(LINE,F)=0
  236.    DA$(LINE,F)=""
  237.    TAT(LINE,F)=0
  238.    ST(LINE,F)=0
  239.    Next F
  240.  
  241. 'LINE=1
  242. Return 
  243.  
  244. CLEAR_LINE:
  245.  
  246.    ERR=11 : Proc MESS
  247.    If MC=2 Then Return 
  248.    PR$(LINE)=""
  249.    A(LINE)=0
  250.    B(LINE)=0
  251.    C(LINE)=0
  252.    D(LINE)=0
  253.    E(LINE)=0
  254.    F(LINE)=0
  255.    G(LINE)=0
  256.    H(LINE)=0
  257.  
  258.    For F=1 To BUFF
  259.    FO$(LINE,F)=""
  260.    IN(LINE,F)=0
  261.    DA$(LINE,F)=""
  262.    TAT(LINE,F)=0
  263.    ST(LINE,F)=0
  264.    Next F
  265. Return 
  266.  
  267. 'define preferences
  268. DEFPREF:
  269.  
  270. Trap Set Font 1
  271.    Unpack 17 To 0 : Limit Mouse 128,42 To 448,300 : Show 
  272.    Colour Back(Colour(0)) : Wait Vbl 
  273.  
  274. CHANGE=0
  275.  
  276.    RRR=LINES : DDD=3
  277.    XXX=112 : YYY=83
  278.    Gosub DAT00
  279.    If R<>LINES Then CHANGE=1 : LINES=R
  280.  
  281.    RRR=BUFF : DDD=3
  282.    XXX=112 : YYY=104
  283.    Gosub DAT00
  284.    If R<>BUFF Then CHANGE=1 : BUFF=R
  285.  
  286.    RRR=BBUFF : DDD=6
  287.    XXX=112 : YYY=125
  288.    Gosub DAT00
  289.    If R<>BBUFF Then Add CHANGE,2 : BBUFF=R
  290.  
  291.    RRR$=KEYIN$ : DDD=2
  292.    XXX=112 : YYY=146
  293.    Gosub DAT01
  294.    R$=Upper$(R$)
  295.    If Len(R$)>1 Then R$=KEYIN$
  296.    If R$<>KEYIN$ Then Add CHANGE,2 : KEYIN$=R$
  297.  
  298.    RRR$=KEYOUT$ : DDD=2
  299.    XXX=112 : YYY=167
  300.    Gosub DAT01
  301.    R$=Upper$(R$)
  302.    If Len(R$)>1 Then R$=KEYOUT$
  303.    If R$<>KEYOUT$ Then Add CHANGE,2 : KEYOUT$=R$
  304.  
  305.    If CHANGE=0 Then Return 
  306.    If CHANGE>1 Then Return 
  307.  
  308.    ERR=10 : Proc MESS
  309.  
  310.    If MC=1 Then CHANGE=1
  311.    If MC=2 Then CHANGE=0
  312.  
  313. Return 
  314.  
  315. 'save prefs
  316. SAVPREF:
  317.  
  318.    Trap Open Out 1,"s:TT2.prefs"
  319.    Trap Print #1,Str$(LINES)
  320.    Trap Print #1,Str$(BUFF)
  321.    Trap Print #1,Str$(BBUFF)
  322.    Trap Print #1,KEYIN$
  323.    Trap Print #1,KEYOUT$
  324.    Trap Close 1
  325.  
  326. Return 
  327.  
  328. 'load prefs
  329. LODPREF:
  330.  
  331.    Trap Open In 1,"s:TT2.prefs"
  332.    Trap Input #1,T$ : LINES=Val(T$)
  333.    Trap Input #1,T$ : BUFF=Val(T$)
  334.    Trap Input #1,T$ : BBUFF=Val(T$)
  335.    Trap Input #1,KEYIN$
  336.    Trap Input #1,KEYOUT$
  337.    Trap Close 1
  338.    If Errtrap<>0 Then End 
  339.  
  340. Return 
  341.  
  342.  
  343. EDTPRO:
  344. 'edit a line 
  345.    If PR$(LINE)="" Then Goto EDTPRO1 Else Goto COENT1
  346.  
  347. Return 
  348.  
  349. EDTPRO1:
  350. 'select a new command then 
  351.    Unpack 7 To 0
  352.    Colour Back(Colour(0)) : Wait Vbl 
  353.  
  354.    Reserve Zone : Reserve Zone 30
  355.       Restore 1010
  356.    For F=1 To 5 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  357.  
  358. HH=0 : MC=0
  359.  
  360. Proc CHLIST
  361.    Gosub EDT3
  362. EDT1:
  363.  
  364.          HH=Zone(X Mouse,Y Mouse)
  365.          If Mouse Click Then MC=1 Else MC=0
  366.  
  367.       If HH=1 and MC=1 and CLNE>1 Then Dec CLNE : Proc CHLIST : Gosub EDT3
  368.       If HH=2 and MC=1 and CLNE<COM Then Inc CLNE : Proc CHLIST : Gosub EDT3
  369.       If HH=3 and MC=1 Then Goto COENT
  370.       If HH=4 and MC=1 Then Goto LU40
  371. Wait Vbl 
  372.    Gosub EDT2
  373. Goto EDT1
  374.  
  375. EDT2:
  376.    If B1=BM Then Return 
  377.       ' *** Locate and define String *** 
  378.       Locate X,Y : Paper 2 : Pen 3 : Print Mid$(A1$,A1,1)
  379.       ' *** Slow down text *** 
  380.       Wait Vbl 
  381.       Inc A1
  382.       Inc B1
  383.          Inc X
  384.       F=Instr(A1$," ",A1)
  385.       F=F-A1
  386.       If X+F>37 Then X=38
  387.          If X=38 Then X=20 : Inc Y
  388.  
  389. Return 
  390.  
  391. 'set up type 
  392. EDT3:
  393. Cls 2,158,27 To 308,209
  394. A1$=COH$(CLNE)
  395.    BM=Len(A1$)
  396.    B1=0
  397.    A1=1
  398.    X=20
  399.    Y=4
  400. Return 
  401.  
  402. 'enter a command 
  403.  
  404. COENT:
  405.    PR$(LINE)=CO$(CLNE)
  406. COENT1:
  407.  
  408.    SA1$=PR$(LINE)
  409.  
  410. For F=1 To COM
  411.          If CO$(F)=SA1$ Then Goto COENT2
  412. Next F
  413.  
  414. COENT2:
  415.  
  416.    SA1$=Str$(F)
  417.    SA1=Len(SA1$) : Dec SA1
  418.    SA$="CMD"+Right$(SA1$,SA1)
  419.    Gosub SA$
  420. Goto LU40
  421.  
  422. '----------------------------------------------------------------------------
  423. '  The main editing piece
  424. '----------------------------------------------------------------------------
  425.  
  426. '--------------------------------------------------------------------
  427. ' Command setups 
  428. '--------------------------------------------------------------------
  429.  
  430. CMD1:
  431.  
  432. 'Command 1 setup= scroll up
  433.  
  434. Unpack 11 To 0
  435.    RRR=(A(LINE)) : DDD=2
  436.    XXX=112 : YYY=80
  437.    Gosub DAT00
  438.  
  439. 'got the value then check it against min and max 
  440.  
  441.       If R>AMAX(1) Then ERMI=AMIN(1) : ERMA=AMAX(1) : ERR=5 : Proc MESS : Goto CMD1
  442.       If R<AMIN(1) Then ERMI=AMIN(1) : ERMA=AMAX(1) : ERR=5 : Proc MESS : Goto CMD1
  443.    A(LINE)=R
  444.  
  445. Gosub BASIC2
  446. Proc FADS
  447.  
  448. Return 
  449.  
  450. CMD2:
  451. 'command to scroll across
  452.  
  453.    Unpack 12 To 0
  454.    Colour Back(Colour(0)) : Wait Vbl 
  455.  
  456.    Reserve Zone : Reserve Zone 30
  457.       Restore 2200
  458.    For F=1 To 4 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  459.  
  460. HH=0 : MC=0
  461.  
  462. Goto CM21
  463.  
  464. CM2_0:
  465.    Set Slider 1,3,2,2,1,3,2,
  466.             Vslider 153,105 To 166,230,255,B(LINE),2
  467. Gr Writing 1 : Text 180,112,Right$(Str$(B(LINE)),3)+" "
  468.  
  469. CM20:
  470.  
  471.          HH=Zone(X Mouse,Y Mouse)
  472.          MC=Mouse Click
  473.  
  474.       If HH=1 and MC=1 and B(LINE)>BMIN(2) Then Dec B(LINE) : Goto CM2_0
  475.       If HH=1 and MC=2 and B(LINE)>(BMIN(2)+5) Then Add B(LINE),-5 : Goto CM2_0
  476.       If HH=2 and MC=1 and B(LINE)<BMAX(2) Then Inc B(LINE) : Goto CM2_0
  477.       If HH=2 and MC=2 and B(LINE)<(BMAX(2)-5) Then Add B(LINE),5 : Goto CM2_0
  478.       If HH=4 and MC=1 Then Goto CM21
  479.       If HH=3 and MC=1 Then Goto CM29
  480.  
  481. Goto CM20
  482.  
  483. CM21:
  484.  
  485.    RRR=(A(LINE)) : DDD=3
  486.    XXX=112 : YYY=82
  487.    Gosub DAT00
  488.  
  489. 'got the value then check it against min and max 
  490.  
  491.       If R>AMAX(2) Then ERMI=AMIN(2) : ERMA=AMAX(2) : ERR=5 : Proc MESS : Goto CM21
  492.       If R<AMIN(2) Then ERMI=AMIN(2) : ERMA=AMAX(2) : ERR=5 : Proc MESS : Goto CM21
  493.    A(LINE)=R
  494. Goto CM2_0
  495.  
  496. CM29:
  497. Gosub BASIC2
  498. Proc FADS
  499.  
  500. Return 
  501.  
  502. CMD3:
  503. 'command to place text 
  504.  
  505.    Unpack 14 To 0
  506.    Colour Back(Colour(0)) : Wait Vbl 
  507.  
  508.    Reserve Zone : Reserve Zone 30
  509.       Restore 2200
  510.    For F=1 To 4 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  511.  
  512. HH=0 : MC=0
  513.  
  514. Goto CM31
  515.  
  516. CM3_0:
  517.    Set Slider 1,3,2,2,1,3,2,
  518.             Vslider 153,105 To 166,230,255,B(LINE),2
  519. Gr Writing 1 : Text 180,112,Right$(Str$(B(LINE)),3)+" "
  520.  
  521. CM30:
  522.  
  523.          HH=Zone(X Mouse,Y Mouse)
  524.          MC=Mouse Click
  525.  
  526.       If HH=1 and MC=1 and B(LINE)>BMIN(3) Then Dec B(LINE) : Goto CM3_0
  527.       If HH=1 and MC=2 and B(LINE)>(BMIN(3)+5) Then Add B(LINE),-5 : Goto CM3_0
  528.       If HH=2 and MC=1 and B(LINE)<BMAX(3) Then Inc B(LINE) : Goto CM3_0
  529.       If HH=2 and MC=2 and B(LINE)<(BMAX(3)-5) Then Add B(LINE),5 : Goto CM3_0
  530.       If HH=4 and MC=1 Then Goto CM31
  531.       If HH=3 and MC=1 Then Goto CM39
  532.  
  533. Goto CM30
  534.  
  535. CM31:
  536.  
  537.    RRR=(A(LINE)) : DDD=4
  538.    XXX=112 : YYY=82
  539.    Gosub DAT00
  540.  
  541. 'got the value then check it against min and max 
  542.  
  543.       If R>AMAX(3) Then ERMI=AMIN(3) : ERMA=AMAX(3) : ERR=5 : Proc MESS : Goto CM31
  544.       If R<AMIN(3) Then ERMI=AMIN(3) : ERMA=AMAX(3) : ERR=5 : Proc MESS : Goto CM31
  545.    A(LINE)=R
  546. Goto CM3_0
  547.  
  548. CM39:
  549. Gosub BASIC2
  550. Proc FADS
  551.  
  552. Return 
  553.  
  554.  
  555. CMD4:
  556. 'command to place text 
  557.  
  558.    Unpack 15 To 0
  559.    Colour Back(Colour(0)) : Wait Vbl 
  560.  
  561.    Reserve Zone : Reserve Zone 30
  562.       Restore 2201
  563.    For F=1 To 5 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  564.  
  565. HH=0 : MC=0
  566.  
  567. Gosub CM41
  568. Gosub CM42
  569.  
  570. CM4_0:
  571.    Set Slider 1,3,2,2,1,3,2,
  572.             Vslider 153,105 To 166,230,255,B(LINE),2
  573. Gr Writing 1 : Text 180,112,Right$(Str$(B(LINE)),3)+" "
  574.  
  575. CM40:
  576.  
  577.          HH=Zone(X Mouse,Y Mouse)
  578.          MC=Mouse Click
  579.  
  580.       If HH=1 and MC=1 and B(LINE)>BMIN(4) Then Dec B(LINE) : Goto CM4_0
  581.       If HH=1 and MC=2 and B(LINE)>(BMIN(4)+5) Then Add B(LINE),-5 : Goto CM4_0
  582.       If HH=2 and MC=1 and B(LINE)<BMAX(4) Then Inc B(LINE) : Goto CM4_0
  583.       If HH=2 and MC=2 and B(LINE)<(BMAX(4)-5) Then Add B(LINE),5 : Goto CM4_0
  584.       If HH=4 and MC=1 Then Gosub CM41 : Goto CM4_0
  585.       If HH=5 and MC=1 Then Gosub CM42 : Goto CM4_0
  586.       If HH=3 and MC=1 Then Goto CM49
  587.  
  588. Goto CM40
  589.  
  590. CM41:
  591.  
  592.    RRR=(A(LINE)) : DDD=4
  593.    XXX=112 : YYY=82
  594.    Gosub DAT00
  595.  
  596. 'got the value then check it against min and max 
  597.  
  598.       If R>AMAX(4) Then ERMI=AMIN(4) : ERMA=AMAX(4) : ERR=5 : Proc MESS : Goto CM41
  599.       If R<AMIN(4) Then ERMI=AMIN(4) : ERMA=AMAX(4) : ERR=5 : Proc MESS : Goto CM41
  600.    A(LINE)=R
  601. Return 
  602.  
  603. CM42:
  604.  
  605.    RRR=(C(LINE)) : DDD=6
  606.    XXX=256 : YYY=82
  607.    Gosub DAT00
  608.  
  609. 'got the value then check it against min and max 
  610.  
  611.       If R>CMAX(4) Then ERMI=CMIN(4) : ERMA=CMAX(4) : ERR=5 : Proc MESS : Goto CM42
  612.       If R<CMIN(4) Then ERMI=CMIN(4) : ERMA=CMAX(4) : ERR=5 : Proc MESS : Goto CM42
  613.    C(LINE)=R
  614. Return 
  615.  
  616. CM49:
  617. Gosub BASIC2
  618. Proc FADS
  619.  
  620. Return 
  621.  
  622. CMD5:
  623. 'command to place text 
  624.  
  625.    Unpack 16 To 0
  626.    Colour Back(Colour(0)) : Wait Vbl 
  627.  
  628.    Reserve Zone : Reserve Zone 30
  629.       Restore 2201
  630.    For F=1 To 5 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  631.  
  632. HH=0 : MC=0
  633.  
  634. Gosub CM51
  635. Gosub CM52
  636.  
  637. CM5_0:
  638.    Set Slider 1,3,2,2,1,3,2,
  639.             Vslider 153,105 To 166,230,255,B(LINE),2
  640. Gr Writing 1 : Text 180,112,Right$(Str$(B(LINE)),3)+" "
  641.  
  642. CM50:
  643.  
  644.          HH=Zone(X Mouse,Y Mouse)
  645.          MC=Mouse Click
  646.  
  647.       If HH=1 and MC=1 and B(LINE)>BMIN(5) Then Dec B(LINE) : Goto CM5_0
  648.       If HH=1 and MC=2 and B(LINE)>(BMIN(5)+5) Then Add B(LINE),-5 : Goto CM5_0
  649.       If HH=2 and MC=1 and B(LINE)<BMAX(5) Then Inc B(LINE) : Goto CM5_0
  650.       If HH=2 and MC=2 and B(LINE)<(BMAX(5)-5) Then Add B(LINE),5 : Goto CM5_0
  651.       If HH=4 and MC=1 Then Gosub CM51 : Goto CM5_0
  652.       If HH=5 and MC=1 Then Gosub CM52 : Goto CM5_0
  653.       If HH=3 and MC=1 Then Goto CM59
  654.  
  655. Goto CM50
  656.  
  657. CM51:
  658.  
  659.    RRR=(A(LINE)) : DDD=4
  660.    XXX=112 : YYY=82
  661.    Gosub DAT00
  662.  
  663. 'got the value then check it against min and max 
  664.  
  665.       If R>AMAX(5) Then ERMI=AMIN(5) : ERMA=AMAX(5) : ERR=5 : Proc MESS : Goto CM51
  666.       If R<AMIN(5) Then ERMI=AMIN(5) : ERMA=AMAX(5) : ERR=5 : Proc MESS : Goto CM51
  667.    A(LINE)=R
  668. Return 
  669.  
  670. CM52:
  671.  
  672.    RRR=(C(LINE)) : DDD=3
  673.    XXX=256 : YYY=82
  674.    Gosub DAT00
  675.  
  676. 'got the value then check it against min and max 
  677.  
  678.       If R>CMAX(5) Then ERMI=CMIN(5) : ERMA=CMAX(5) : ERR=5 : Proc MESS : Goto CM52
  679.       If R<CMIN(5) Then ERMI=CMIN(5) : ERMA=CMAX(5) : ERR=5 : Proc MESS : Goto CM52
  680.    C(LINE)=R
  681. Return 
  682.  
  683. CM59:
  684. Gosub BASIC2
  685. Proc FADS
  686.  
  687. Return 
  688.  
  689. CMD6:
  690. 'command to animate dpaint files 
  691.  
  692. CM6_0:
  693.  
  694.    Gosub CM67
  695. Gosub CM61 : If DA$(LINE,1)="" Then Goto CM6_0
  696.    Gosub CM67
  697. Gosub CM62
  698.    Gosub CM67
  699. Gosub CM63
  700.    Gosub CM67
  701. Wait 50
  702.  
  703. Goto CM69
  704.  
  705. CM61:
  706.  
  707.    REQ1$="Choose_A_Dpaint_Animation" : REQ2$=DA$(LINE,1) : REQ3$="#?" : REQ4$=" " : Proc _GET_FILE
  708.    R$=REQ$
  709.    If Exist(R$) Then DA$(LINE,1)=R$ Else DA$(LINE,1)=""
  710.  
  711. Return 
  712.  
  713. CM62:
  714.  
  715.    RRR=(A(LINE)) : DDD=3
  716.    XXX=112 : YYY=106
  717.    Gosub DAT00
  718.  
  719. 'got the value then check it against min and max 
  720.  
  721.       If R>AMAX(6) Then ERMI=AMIN(6) : ERMA=AMAX(6) : ERR=5 : Proc MESS : Goto CM62
  722.       If R<AMIN(6) Then ERMI=AMIN(6) : ERMA=AMAX(6) : ERR=5 : Proc MESS : Goto CM62
  723.    A(LINE)=R
  724. Return 
  725.  
  726. CM63:
  727.  
  728.    RRR=(B(LINE)) : DDD=3
  729.    XXX=112 : YYY=129
  730.    Gosub DAT00
  731.  
  732. 'got the value then check it against min and max 
  733.  
  734.       If R>BMAX(6) Then ERMI=BMIN(6) : ERMA=BMAX(6) : ERR=5 : Proc MESS : Goto CM63
  735.       If R<BMIN(6) Then ERMI=BMIN(6) : ERMA=BMAX(6) : ERR=5 : Proc MESS : Goto CM63
  736.    B(LINE)=R
  737. Return 
  738.  
  739. CM67:
  740.  
  741.    Unpack 19 To 0
  742.    Colour Back(Colour(0)) : Wait Vbl 
  743.  
  744.    Gr Writing 0 : Text 106,88,Right$(DA$(LINE,1),25)
  745.    Gr Writing 0 : Text 108,112,Str$(A(LINE))
  746.    Gr Writing 0 : Text 108,135,Str$(B(LINE))
  747. Return 
  748.  
  749. CM69:
  750.  
  751. Return 
  752.  
  753. CMD7:
  754. 'command for screen fxs
  755.  
  756.    Unpack 20 To 1
  757.    Unpack 20 To 0
  758.    Colour Back(Colour(0)) : Wait Vbl 
  759.  
  760.    Reserve Zone : Reserve Zone 30
  761.       Restore 2400
  762.    For F=1 To 7 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  763.  
  764. HH=0 : MC=0
  765.  
  766. Gosub CM71
  767.  
  768. CM70:
  769.  
  770.          HH=Zone(X Mouse,Y Mouse)
  771.          MC=Mouse Click
  772.  
  773.    If HH=1 and MC=1 Then Gosub CM72 : Gosub CM71 : Goto CM70
  774.    If HH=2 and MC=1 and A(LINE)<FXM Then Add A(LINE),1 : Gosub CM71 : Goto CM70
  775.    If HH=3 and MC=1 and A(LINE)>0 Then A(LINE)=A(LINE)-1 : Gosub CM71 : Goto CM70
  776.    If HH=4 and MC=1 and B(LINE)<FXM Then Add B(LINE),1 : Gosub CM71 : Goto CM70
  777.    If HH=5 and MC=1 and B(LINE)>0 Then B(LINE)=B(LINE)-1 : Gosub CM71 : Goto CM70
  778.    If HH=6 and MC=1 and DA$(LINE,1)<>"" and C(LINE)>0 Then Goto CM79
  779.    If HH=7 and MC=1 Then Gosub CM73 : Gosub CM71
  780. Goto CM70
  781.  
  782. CM71:
  783.    Screen Copy 1 To 0
  784.  
  785.    Gr Writing 0 : Text 128,84,Right$(DA$(LINE,1),23)
  786.    Gr Writing 0 : Text 76,148,FX$(A(LINE))
  787.    Gr Writing 0 : Text 76,204,FX$(B(LINE))
  788.    Gr Writing 0 : Text 88,235,Str$(C(LINE))
  789. Return 
  790.  
  791. CM72:
  792.    REQ1$="Choose_An_IFF_Piccy" : REQ2$=DA$(LINE,1) : REQ3$="#?" : REQ4$=" " : Proc _GET_FILE
  793.    If Not Exist(REQ$) Then Goto CM72
  794.    DA$(LINE,1)=REQ$
  795. Return 
  796.  
  797. CM73:
  798.    RRR=(C(LINE)) : DDD=5
  799.    XXX=96 : YYY=229
  800.    Gosub DAT00
  801.  
  802. 'got the value then check it against min and max 
  803.  
  804.       If R>CMAX(7) Then ERMI=CMIN(7) : ERMA=CMAX(7) : ERR=5 : Proc MESS : Goto CM73
  805.       If R<CMIN(7) Then ERMI=CMIN(7) : ERMA=CMAX(7) : ERR=5 : Proc MESS : Goto CM73
  806.    C(LINE)=R
  807. Return 
  808.  
  809. CM79:
  810. Screen Close 1
  811.  
  812. Return 
  813.  
  814. CMD8:
  815. Return 
  816.  
  817. CMD9:
  818. Return 
  819.  
  820. '------------
  821. 'procedures
  822. '------------
  823.  
  824. FOGET:
  825. '   gets the fonts and logs them 
  826.    Trap Set Font 1
  827. If Errtrap=0 Then Return 
  828. ERR=2 : Proc MESS
  829.  
  830. If PTH$<>"" Then Goto FUP1
  831.    REQ1$="Choose_Font_Directory" : REQ2$="TT2:fonts" : REQ3$="#?" : REQ4$=" " : Proc _GET_FILE
  832.    PTH$=REQ$
  833.  
  834. FUP1:
  835. Trap Reserve As Work 100,1000000000
  836. Assign "fonts:" To PTH$
  837.       Get Fonts 
  838. F=1
  839. FO1:
  840.    If Len(Font$(F))=0 Then Goto FO2
  841.    Inc F
  842. Goto FO1
  843.  
  844. FO2:
  845. FBUFF=F-1
  846. Dim FT$(FBUFF)
  847. Global FT$()
  848.  
  849. F=3
  850. FO3:
  851.    If Len(Font$(F))=0 Then Goto FO4
  852.    FT$(F)=Font$(F)
  853.    Inc F
  854. Goto FO3
  855.  
  856. FO4:
  857.  
  858. For G=3 To F-1
  859.    If Right$(FT$(G),5)=" Rom " Then FT$(G)="zzzzzzzzzzzzzzz"
  860. Next G
  861.  
  862. Sort FT$(0)
  863. FT$(1)=Font$(1)
  864. FT$(2)=Font$(2)
  865.  
  866. For G=3 To F-1
  867.    If FT$(G)="zzzzzzzzzzzzzzz" Then FT$(G)="" : If SA1=0 Then SA1=G
  868. Next G
  869.  
  870. FBUFF=SA1-1
  871.  
  872. Return 
  873.  
  874. Procedure PRLIST
  875.    TT2=44
  876.    TT=LINE
  877.    If LINE+9>LINES Then TT=LINES-8
  878.  
  879.    For F=1 To 9
  880.       Cls 3,97,TT2 To 219,TT2+20
  881.    Add TT2,21
  882.    Next F
  883.  
  884.    TT2=44
  885.    TT=LINE
  886.    If LINE+9>LINES Then TT=LINES-8
  887.  
  888.    For F=TT To TT+8
  889.          T$=""
  890.          If LINE=F Then T$=">"
  891.          T$=T$+PR$(F)
  892.       Gr Writing 0 : Ink 1 : Paper 3 : Text 100,12+TT2,T$
  893.    Add TT2,21
  894.    Next F
  895.  
  896. End Proc
  897. Procedure CHLIST
  898.    TT2=42
  899.    TT=CLNE
  900.    If CLNE+9>COM Then TT=COM-8
  901.  
  902.    For F=1 To 9
  903.       Cls 3,1,TT2 To 124,TT2+19
  904.    Add TT2,21
  905.    Next F
  906.  
  907.    TT2=42
  908.    TT=CLNE
  909.    If CLNE+9>COM Then TT=COM-8
  910.  
  911.    For F=TT To TT+8
  912.          T$=""
  913.          If CLNE=F Then T$=">"
  914.          T$=T$+CO$(F)
  915.       Gr Writing 0 : Ink 1 : Paper 3 : Text 2,12+TT2,T$
  916.    Add TT2,21
  917.    Next F
  918.  
  919. End Proc
  920. Procedure DEFCOL
  921. 'default colours 
  922.  
  923. Restore 1
  924.    For F=0 To 7
  925.    Read CR(F),CG(F),CB(F)
  926.    SA$=Hex$(CR(F))
  927.    SA1$=Hex$(CG(F))
  928.    SA2$=Hex$(CB(F))
  929.    SA3$="$"+Right$(SA$,1)+Right$(SA1$,1)+Right$(SA2$,1)
  930.    CLR(F)=Val(SA3$)
  931.    Next F
  932. 1 Data $3,$3,$3,$F,$F,$F,$F,$0,$0,$0,$F,$0,$0,$0,$F,$7,$7,$7,$3,$3,$3,$9,$9,$9
  933. End Proc
  934. Procedure PROGSAVE
  935. 'save program
  936. 'including colours 
  937. 'nb not compatable with TV Titles <2.00
  938.  
  939. Unpack 13 To 0
  940.  
  941. Cls 3,9,57 To 311,207
  942. Ink 1 : Gr Writing 0 : Text 16,68,"Compiling and Saving Program"
  943.  
  944. Erase 5
  945. Trap Reserve As Work 5,BBUFF
  946. If Errtrap>0 Then ERR=9 : Proc MESS : Goto S100
  947.  
  948. SA2=Start(5) : SA3=SA2+Length(5) : SA4=0
  949.  
  950. SA=0 : SA1=0
  951. Hslider 16,80 To 304,160,100,SA,5
  952.  
  953. SA$="2.03:TV Titles: Taurus Software @1993:"+Chr$(10)
  954. Add SA4,Len(SA$) : If SA4>BBUFF Then ERR=8 : Proc MESS : Goto S100
  955. Poke$ SA2,SA$ : Add SA2,Len(SA$) : SA$=""
  956.  
  957.    For F1=LINES To 1 Step -1
  958.    If Len(PR$(F1))=0 Then Next F1
  959.  
  960. SA1=(100/LINES)
  961.  
  962. F=1
  963. S5:
  964.    SA$=SA$+PR$(F)+Chr$(10)
  965.    SA$=SA$+Str$(A(F))+Chr$(10)
  966.    SA$=SA$+Str$(B(F))+Chr$(10)
  967.    SA$=SA$+Str$(C(F))+Chr$(10)
  968.    SA$=SA$+Str$(D(F))+Chr$(10)
  969.    SA$=SA$+Str$(E(F))+Chr$(10)
  970.    SA$=SA$+Str$(F(F))+Chr$(10)
  971.    SA$=SA$+Str$(G(F))+Chr$(10)
  972.    SA$=SA$+Str$(H(F))+Chr$(10)
  973.  
  974. 'find last blank line
  975. For G1=BUFF To 1 Step -1
  976. If Len(DA$(F,G1))=0 Then Next G1
  977.  
  978. For G=1 To G1
  979.  
  980.    SA$=SA$+FO$(F,G)+Chr$(10)
  981.    SA$=SA$+Str$(IN(F,G))+Chr$(10)
  982.    SA$=SA$+DA$(F,G)+Chr$(10)
  983.    SA$=SA$+Str$(TAT(F,G))+Chr$(10)
  984.    SA$=SA$+Str$(ST(F,G))+Chr$(10)
  985. S10:
  986. Next G
  987.    SA$=SA$+"END OF COMMAND"+Chr$(10)
  988.  
  989. Add SA4,Len(SA$) : If SA4>BBUFF Then ERR=8 : Proc MESS : Goto S100
  990. Poke$ SA2,SA$ : Add SA2,Len(SA$) : SA$=""
  991.  
  992. Add SA,SA1
  993. Cls 3,16,80 To 304,160 : Wait Vbl : Hslider 16,80 To 304,160,100,SA,5 : Wait 10
  994.  
  995.       Inc F
  996.       If F<=F1 Then Goto S5
  997.  
  998.    SA$=SA$+"END OF PROGRAM"+Chr$(10)
  999.  
  1000. 'and colours 
  1001.  
  1002. For F=0 To 7
  1003.    SA$=SA$+Str$(CLR(F))+Chr$(10)
  1004. Next F
  1005.  
  1006.    SA$=SA$+PTH$+Chr$(10)
  1007.    SA$=SA$+TUNE$+Chr$(10)
  1008.  
  1009. Add SA4,Len(SA$) : If SA4>BBUFF Then ERR=8 : Proc MESS : Goto S100
  1010. Poke$ SA2,SA$ : Add SA2,Len(SA$) : SA$=""
  1011.  
  1012. Cls 3,16,80 To 304,160 : Wait Vbl : Hslider 16,80 To 304,160,100,100,5 : Wait 10
  1013.  
  1014.    REQ1$="Save_TT2_Program_____" : REQ2$=Dir$ : REQ3$="#?.TT2" : REQ4$=FILE$ : Proc _GET_FILE
  1015.    F$=REQ$
  1016.       If F$="" Then ERR=3 : Proc MESS : Pop Proc
  1017.       Bsave F$,Start(5) To Start(5)+SA4
  1018.    Exec "c:copy tt2:tt2_system/icon.icon "+REQ$+".info"
  1019.  
  1020. S100:
  1021.  
  1022. Erase 5
  1023.  
  1024. End Proc
  1025. LODPRO:
  1026.    Proc LODPRO1
  1027.    If ERR=6 Then Return 
  1028.          Gosub FOGET : Gosub LODTUNE5
  1029. Return 
  1030. Procedure LODPRO1
  1031.  
  1032. Unpack 13 To 0
  1033. Cls 3,9,57 To 311,207
  1034. Ink 1 : Gr Writing 0 : Text 16,68,"Loading TT2 program."
  1035.  
  1036.    For SA3=1 To LINES
  1037.    PR$(SA3)=""
  1038.    A(SA3)=0
  1039.    B(SA3)=0
  1040.    C(SA3)=0
  1041.    D(SA3)=0
  1042.    E(SA3)=0
  1043.    F(SA3)=0
  1044.    G(SA3)=0
  1045.    H(SA3)=0
  1046.  
  1047.    For F=1 To BUFF
  1048.    FO$(SA3,F)=""
  1049.    IN(SA3,F)=0
  1050.    DA$(SA3,F)=""
  1051.    TAT(SA3,F)=0
  1052.    ST(SA3,F)=0
  1053.    Next F
  1054.    Next SA3
  1055.  
  1056.       REQ1$="Load_A_TT2_Program" : REQ2$=Dir$ : REQ3$="#?.TT2" : REQ4$="" : Proc _GET_FILE
  1057.       F$=REQ$ : FILE$=REQ$
  1058.       If F$="" Then ERR=6 : Proc MESS : Pop Proc
  1059.       If Exist(F$)=0 Then ERR=6 : Proc MESS : Pop Proc
  1060.  
  1061.    Erase 5
  1062.    Open In 1,F$
  1063.    SA2=Lof(1)
  1064.    Close 1
  1065.  
  1066.    If SA2>=BBUFF Then BBUFF=SA2+100
  1067.  
  1068.    Trap Reserve As Work 5,BBUFF
  1069.    If Errtrap>0 Then ERR=9 : Proc MESS : Pop Proc
  1070.  
  1071.    SA2=Start(5) : SA3=SA2+Length(5)
  1072.  
  1073.       Bload F$,5
  1074.  
  1075.       SA1$=Peek$(SA2,10,":")
  1076.       Text 16,80,"Version "+SA1$
  1077.       Inc SA2
  1078.       If Val(SA1$)<2.01 Then Wait 50 : ERR=6 : Proc MESS : Pop Proc
  1079.       Gosub LP1
  1080.  
  1081. F=1
  1082. LP10:
  1083.    Gosub LP1
  1084.    If SA1$="END OF PROGRAM" Then Goto LP40
  1085.    PR$(F)=SA1$
  1086.  
  1087.    Gosub LP1
  1088.    A(F)=Val(SA1$)
  1089.    Gosub LP1
  1090.    B(F)=Val(SA1$)
  1091.    Gosub LP1
  1092.    C(F)=Val(SA1$)
  1093.    Gosub LP1
  1094.    D(F)=Val(SA1$)
  1095.    Gosub LP1
  1096.    E(F)=Val(SA1$)
  1097.    Gosub LP1
  1098.    F(F)=Val(SA1$)
  1099.    Gosub LP1
  1100.    G(F)=Val(SA1$)
  1101.    Gosub LP1
  1102.    H(F)=Val(SA1$)
  1103.  
  1104. G=1
  1105. LP20:
  1106.  
  1107.    Gosub LP1
  1108.    If SA1$="END OF COMMAND" Then Goto LP30
  1109.  
  1110.    FO$(F,G)=SA1$
  1111.    Gosub LP1
  1112.    IN(F,G)=Val(SA1$)
  1113.    Gosub LP1
  1114.    DA$(F,G)=SA1$
  1115.    Gosub LP1
  1116.    TAT(F,G)=Val(SA1$)
  1117.    Gosub LP1
  1118.    ST(F,G)=Val(SA1$)
  1119.  
  1120. Inc G
  1121. Goto LP20
  1122.  
  1123. LP30:
  1124.  
  1125.       Paper 3 : Pen 1 : Locate 2,11 : Print "Loaded Line  "+Str$(F) : Wait 5
  1126.       Gr Writing 0
  1127. Inc F
  1128. Goto LP10
  1129.  
  1130. LP40:
  1131.  
  1132. For F=0 To 7
  1133.    Gosub LP1
  1134.    CLR(F)=Val(SA1$)
  1135. Next F
  1136.       Text 16,110,"Loaded Colours." : Wait 20
  1137.  
  1138.    Gosub LP1
  1139.    PTH$=SA1$
  1140.       Text 16,120,"Loaded Font Path." : Wait 20
  1141.  
  1142.    Gosub LP1
  1143.    TUNE$=SA1$
  1144.       Text 16,130,"Loaded Tune Path." : Wait 20
  1145.  
  1146.  
  1147. Pop Proc
  1148.  
  1149. LP1:
  1150.    SA1$=Peek$(SA2,256,Chr$(10))
  1151.    Add SA2,Len(SA1$)
  1152.    Inc SA2
  1153. Return 
  1154.  
  1155. End Proc
  1156. Procedure FOSHOW
  1157. ' shows the fonts
  1158.    Trap Set Font 1
  1159.    If Errtrap Then Pop Proc
  1160.  
  1161. 'show a piece of font
  1162.  
  1163. Unpack 9 To 0
  1164.  
  1165.  
  1166.    Reserve Zone : Reserve Zone 30
  1167.       Restore 99
  1168.    For F=1 To 4 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  1169.  
  1170. HH=0 : MC=0 : F=1
  1171. Gosub PLU49
  1172.  
  1173. PLU46:
  1174.  
  1175.          HH=Zone(X Mouse,Y Mouse)
  1176.          If Mouse Click Then MC=1 Else MC=0
  1177.       If HH=1 and MC=1 and F<FBUFF Then Inc F : Gosub PLU49
  1178.       If HH=2 and MC=1 and F>1 Then Dec F : Gosub PLU49
  1179.       If HH=3 and MC=1 Then Gosub PLU50
  1180.       If HH=4 and MC=1 Then Pop Proc
  1181.  
  1182. Goto PLU46
  1183.  
  1184. PLU49:
  1185. 'write the font name 
  1186.  
  1187. Cls 3,6,62 To 309,237
  1188.    Trap Set Font 1 : If Errtrap Then Return 
  1189.       Gr Writing 0 : Ink 1 : Text 7,230,FT$(F)
  1190. Return 
  1191.  
  1192. PLU50:
  1193. 'display a font
  1194.  
  1195. G=1
  1196. PLU51:
  1197.  
  1198.    If Font$(G)=FT$(F) Then Goto PLU60
  1199.    Inc G
  1200. Goto PLU51
  1201.  
  1202. PLU60:
  1203.  
  1204. Set Font G
  1205. SA1$="ABC abc 012"
  1206. If Text Length(SA1$)>300 Then SA1$="AB ab 01"
  1207. Gr Writing 0 : Ink 2 : Text 8,160,SA1$
  1208. Return 
  1209.  
  1210. 99 Data 129,81,199,90,210,81,280,90,293,81,363,90,375,81,445,90
  1211.  
  1212. End Proc
  1213. Procedure FADS
  1214. 'proc to do the fade in/out screen 
  1215.  
  1216. Trap Set Font 1
  1217. If Errtrap<>0 Then ERR=1 : Proc MESS : Pop Proc
  1218.    Unpack 10 To 0
  1219.    Colour Back(Colour(0)) : Wait Vbl 
  1220.  
  1221. HH=0 : MC=0 : Ink 1
  1222.  
  1223.       Reserve Zone : Reserve Zone 5
  1224.       Restore 2120
  1225.    For F=1 To 5 : Read Z1,Z2,Z3,Z4
  1226.    Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  1227.  
  1228. F46:
  1229.    Gosub F100
  1230.    Gosub F150
  1231. F47:
  1232.  
  1233.          HH=Zone(X Mouse,Y Mouse)
  1234.          If Mouse Click Then MC=1 Else MC=0
  1235.          If MC=0 Then Goto F47
  1236.  
  1237.       If HH=1 Then Colour 4,$F00 : Colour 6,$FFF
  1238.       If HH=2 Then Colour 5,$F00 : Colour 6,$FFF
  1239.       If HH=3 Then Colour 6,$F00 : Colour 4,$FFF : Colour 5,$FFF
  1240.          If HH=4 Then Goto F200
  1241.          If HH=5 Then Gosub F150
  1242. Goto F47
  1243.  
  1244. F100:
  1245.    If D(LINE)=1 Then Colour 4,$F00 : Colour 5,$FFF : Colour 6,$FFF
  1246.    If D(LINE)=2 Then Colour 4,$FFF : Colour 5,$F00 : Colour 6,$FFF
  1247.    If D(LINE)=3 Then Colour 4,$F00 : Colour 5,$F00 : Colour 6,$FFF
  1248.    If D(LINE)=0 Then Colour 4,$FFF : Colour 5,$FFF : Colour 6,$F00
  1249. Return 
  1250.  
  1251. F150:
  1252.  
  1253.    SA$="DIgit 1,140,32,4,"+Str$(E(LINE))+",1,3,1;"
  1254.    SA$=SA$+"EXit;"
  1255.  
  1256. 'sa$ creates a digit box and uses it to take a value 
  1257.    Dialog Open 1,SA$ : R=Dialog Run(1)
  1258. Repeat 
  1259.       R=Dialog(1)
  1260. Until R=1
  1261.  
  1262.       R=Rdialog(1,1)
  1263.             Dialog Close 
  1264.  
  1265. 'got the value then check it against min and max 
  1266.  
  1267.       If R>600 Then Goto F150
  1268.       If R<0 Then Goto F150
  1269.    E(LINE)=R
  1270.  
  1271. Return 
  1272.  
  1273. 2120 Data 192,97,376,123,192,147,376,173,192,197,376,223,395,193,429,224,188,73,378,87
  1274.  
  1275. F200:
  1276.    If Colour(4)=$F00 Then D(LINE)=1
  1277.    If Colour(5)=$F00 Then D(LINE)=2
  1278.    If Colour(4)=$F00 and Colour(5)=$F00 Then D(LINE)=3
  1279.       If Colour(6)=$F00 Then D(LINE)=0
  1280.  
  1281. End Proc
  1282.  
  1283.  
  1284.  
  1285. BASIC2:
  1286. 'this proc will get hold of the data that is needed for the rest of the
  1287. 'command to work!! 
  1288.  
  1289. B40:
  1290. Trap Set Font 1
  1291. If Errtrap<>0 Then ERR=1 : Proc MESS : Return 
  1292.    Unpack 8 To 0
  1293.    Colour Back(Colour(0)) : Wait Vbl 
  1294.  
  1295. HH=0 : MC=0 : Ink 1 : DLINE=1
  1296.  
  1297. Gosub B251
  1298.  
  1299.       Reserve Zone : Reserve Zone 30
  1300.       Restore 2100
  1301.    For F=1 To 29 : Read Z1,Z2,Z3,Z4
  1302.    Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  1303.  
  1304. B46:
  1305.  
  1306. Gosub B100 : Gosub B101
  1307. B47:
  1308.  
  1309.          HH=Zone(X Mouse,Y Mouse)
  1310.          If Mouse Click Then MC=1 Else MC=0
  1311.          If MC=0 Then Goto B47
  1312.  
  1313.             If HH=1 and FLINE<FBUFF Then Inc FLINE : Gosub B200
  1314.             If HH=2 and FLINE>1 Then Dec FLINE : Gosub B200
  1315.             If HH=3 Then Goto B99
  1316.                If HH>3 and HH<12 Then IN(LINE,DLINE)=HH-4
  1317. 'store current ink 
  1318.          KIN=IN(LINE,DLINE)
  1319. 'change colour 
  1320. 'change red
  1321.                   If HH=12 and CR(KIN)>0 Then Dec CR(KIN)
  1322.                   If HH=13 and CR(KIN)<15 Then Inc CR(KIN)
  1323. 'change green
  1324.                   If HH=14 and CG(KIN)>0 Then Dec CG(KIN)
  1325.                   If HH=15 and CG(KIN)<15 Then Inc CG(KIN)
  1326. 'change blue 
  1327.                   If HH=16 and CB(KIN)>0 Then Dec CB(KIN)
  1328.                   If HH=17 and CB(KIN)<15 Then Inc CB(KIN)
  1329. 'change slider 
  1330.                   If HH>11 and HH<18 Then Gosub B250
  1331. 'choose tat
  1332.                   If HH=18 Then Colour 5,$F00 : Colour 6,$FFF : Colour 7,$FFF : TAT(LINE,DLINE)=0
  1333.                   If HH=19 Then Colour 5,$FFF : Colour 6,$F00 : Colour 7,$FFF : TAT(LINE,DLINE)=1
  1334.                   If HH=20 Then Colour 5,$FFF : Colour 6,$FFF : Colour 7,$F00 : TAT(LINE,DLINE)=2
  1335. 'choose type 
  1336.                   If HH=21 Then Colour 19,$F00 : Gosub B102
  1337.                   If HH=22 Then Colour 16,$F00 : Colour 17,$FFF : Colour 18,$FFF : Colour 19,$FFF : ST(LINE,DLINE)=0
  1338.                   If HH=23 Then Colour 17,$F00 : Gosub B102
  1339.                   If HH=24 Then Colour 18,$F00 : Gosub B102
  1340. 'up/down data lines
  1341.             If HH=25 and DLINE<BUFF Then Inc DLINE
  1342.             If HH=26 and DLINE>1 Then Dec DLINE
  1343.  
  1344. 'go for and edit then
  1345.             If HH=28 Then Gosub B201
  1346. 'write new data back to strings
  1347.  
  1348. 'delete data line
  1349.             If HH=29 Then Gosub B300
  1350.  
  1351. 'insert data line
  1352.             If HH=27 Then Gosub B310
  1353.  
  1354. Goto B46
  1355.  
  1356. B99:
  1357. 'returning back to prog
  1358.  
  1359.    Gosub SHAD0
  1360.  
  1361. Return 
  1362.  
  1363. B100:
  1364. 'clear windows and others
  1365.  
  1366.    Cls 3,2,73 To 126,93
  1367.    Cls 3,15,186 To 309,224
  1368.    For F=16 To 19 : Colour F,$FFF : Next F
  1369.    For F=5 To 7 : Colour F,$FFF : Next F
  1370.  
  1371. 'clear TAT 
  1372.    SA=TAT(LINE,DLINE)
  1373.    For F=5 To 7 : Colour F,$FFF : Next F
  1374. 'write TAT 
  1375.    Colour(5+SA),$F00
  1376.  
  1377. 'clear ST
  1378.    SA=ST(LINE,DLINE)
  1379.    For F=16 To 19 : Colour F,$FFF : Next F
  1380. 'write ST
  1381.    If Btst(0,SA) Then Colour(19),$F00
  1382.    If Btst(1,SA) Then Colour(17),$F00
  1383.    If Btst(2,SA) Then Colour(18),$F00
  1384. If SA=0 Then Colour(16),$F00
  1385.  
  1386. 'create default font if none exists
  1387.    If Len(FO$(LINE,DLINE))=0 Then FO$(LINE,DLINE)=FT$(FLINE)
  1388.  
  1389. Return 
  1390.  
  1391. B101:
  1392. 'put current font on in box
  1393.    SA$=FO$(LINE,DLINE)
  1394.    SA=Instr(SA$,".font") : Dec SA
  1395.    If SA<10 Then SA1$=Left$(SA$,SA)
  1396.    If SA>9 Then SA1$=Left$(SA$,9)
  1397.    SA1$=SA1$+" "+Mid$(SA$,31,3)
  1398.          SA1$=SA1$+"pt"
  1399.    Gr Writing 0 : Text 2,84,SA1$
  1400.  
  1401. 'write current data
  1402.    SA=16 : SA1=192 : SA2=1
  1403.    For F=1 To Len(DA$(LINE,DLINE))
  1404.       Gr Writing 0 : Ink 1 : Text SA,SA1,Mid$(DA$(LINE,DLINE),SA2,1)
  1405.       Inc SA2 : If SA2>139 Then Goto B102
  1406.       Add SA,8
  1407.       If SA=296 Then SA=16 : Add SA1,8
  1408.    Next F
  1409.  
  1410. B102:
  1411. 'get current ink 
  1412.    SA=IN(LINE,DLINE)
  1413.    Add SA,8
  1414.    Colour 4,Colour(SA)
  1415.  
  1416. 'get TAT which is text at position 
  1417.    For F=5 To 7
  1418.    If Colour(F)=$F00 Then TAT(LINE,DLINE)=F-5
  1419.    Next F
  1420.  
  1421. 'get ST which is bold/italic/underline 
  1422.          SA3=0
  1423.    If Colour(16)=$F00 Then SA3=0
  1424.    If Colour(17)=$F00 Then Add SA3,2
  1425.    If Colour(18)=$F00 Then Add SA3,4
  1426.    If Colour(19)=$F00 Then Inc SA3
  1427.       ST(LINE,DLINE)=SA3
  1428.  
  1429. Return 
  1430.  
  1431. B200:
  1432. 'write font data back  
  1433.    FO$(LINE,DLINE)=FT$(FLINE)
  1434.  
  1435. Return 
  1436.  
  1437. B201:
  1438. 'enter a line of data (255 chars max)
  1439.  
  1440.    SA$="EDit 1,16,208,36,255,"+Chr$(34)+DA$(LINE,DLINE)+Chr$(34)+",3,1;"
  1441.    SA$=SA$+"EXit;"
  1442.  
  1443. 'sa$ creates a text box and uses it to take a string 
  1444.    Dialog Open 1,SA$ : R=Dialog Run(1)
  1445. Repeat 
  1446.       R=Dialog(1)
  1447. Until R=1
  1448.  
  1449.       SA$=Rdialog$(1,1)
  1450.             Dialog Close 
  1451.  
  1452. 'got the value then check it against min and max 
  1453.  
  1454. DA$(LINE,DLINE)=SA$
  1455.  
  1456. Return 
  1457.  
  1458. 'put the sliders on then 
  1459. B250:
  1460.  
  1461.          KIN=IN(LINE,DLINE)
  1462.             Cls 3,178,72 To 184,102
  1463.             Cls 3,205,72 To 211,102
  1464.             Cls 3,232,72 To 237,102
  1465.  
  1466.    Set Slider 1,3,2,2,1,3,2,
  1467.             Vslider 178,72 To 184,102,15,CR(KIN),2
  1468.             Vslider 205,72 To 211,102,15,CG(KIN),2
  1469.             Vslider 232,72 To 237,102,15,CB(KIN),2
  1470.  
  1471.    SA$=Hex$(CR(KIN))
  1472.    SA1$=Hex$(CG(KIN))
  1473.    SA2$=Hex$(CB(KIN))
  1474.    SA3$="$"+Right$(SA$,1)+Right$(SA1$,1)+Right$(SA2$,1)
  1475.    CLR(KIN)=Val(SA3$)
  1476. Gosub B290
  1477. Return 
  1478.  
  1479. B251:
  1480.  
  1481.          KIN=IN(LINE,DLINE)
  1482.             Cls 3,178,72 To 184,102
  1483.             Cls 3,205,72 To 211,102
  1484.             Cls 3,232,72 To 237,102
  1485.  
  1486.    Set Slider 1,3,2,2,1,3,2,
  1487.             Vslider 178,72 To 184,102,15,CR(KIN),2
  1488.             Vslider 205,72 To 211,102,15,CG(KIN),2
  1489.             Vslider 232,72 To 237,102,15,CB(KIN),2
  1490. Gosub B290
  1491. Return 
  1492.  
  1493. B290:
  1494. 'put the colours on
  1495. For F=8 To 15 : Colour F,CLR(F-8) : Next F
  1496. Return 
  1497.  
  1498. B300:
  1499. 'delete data line  
  1500.  
  1501.    For F=DLINE To BUFF-1
  1502.       DA$(LINE,F)=DA$(LINE,F+1)
  1503.       FO$(LINE,F)=FO$(LINE,F+1)
  1504.       IN(LINE,F)=IN(LINE,F+1)
  1505.       TAT(LINE,F)=TAT(LINE,F+1)
  1506.       ST(LINE,F)=ST(LINE,F+1)
  1507.    Next F
  1508.  
  1509.       DA$(LINE,BUFF)=""
  1510.       FO$(LINE,BUFF)=""
  1511.       IN(LINE,BUFF)=0
  1512.       TAT(LINE,BUFF)=0
  1513.       ST(LINE,BUFF)=0
  1514.  
  1515. Return 
  1516.  
  1517. B310:
  1518. '----------------- 
  1519. 'Insert data line. 
  1520. '----------------- 
  1521.    For F=BUFF To DLINE+1 Step -1
  1522.       DA$(LINE,F)=DA$(LINE,F-1)
  1523.       FO$(LINE,F)=FO$(LINE,F-1)
  1524.       IN(LINE,F)=IN(LINE,F-1)
  1525.       TAT(LINE,F)=TAT(LINE,F-1)
  1526.       ST(LINE,F)=ST(LINE,F-1)
  1527.    Next F
  1528.  
  1529.       DA$(LINE,DLINE)=""
  1530.       FO$(LINE,DLINE)=""
  1531.       IN(LINE,DLINE)=0
  1532.       TAT(LINE,DLINE)=0
  1533.       ST(LINE,DLINE)=0
  1534.  
  1535. Return 
  1536.  
  1537. 'do shadow 
  1538. SHAD0:
  1539. Unpack 18 To 0
  1540.    Colour Back(Colour(0)) : Wait Vbl 
  1541. Colour 7,CLR(0)
  1542.  
  1543.    Reserve Zone : Reserve Zone 30
  1544.       Restore 2300
  1545.    For F=1 To 8 : Read Z1,Z2,Z3,Z4 : Set Zone F,Z1,Z2 To Z3,Z4 : Next F
  1546.  
  1547. HH=0 : MC=0
  1548.  
  1549. Gosub SHAD2 : Gosub SHAD3 : Gosub SHAD4
  1550.  
  1551. SHAD1:
  1552.  
  1553.          HH=Zone(X Mouse,Y Mouse)
  1554.          If Mouse Click Then MC=1 Else MC=0
  1555.       If HH=1 and MC=1 Then H(LINE)=1
  1556.       If HH=2 and MC=1 Then H(LINE)=0
  1557.       If HH=3 and MC=1 Then Inc H(LINE) : If H(LINE)=8 Then H(LINE)=1
  1558.       If HH=4 and MC=1 Then Dec G(LINE) : If G(LINE)=-8 Then G(LINE)=0
  1559.       If HH=5 and MC=1 Then Inc F(LINE) : If F(LINE)=8 Then F(LINE)=0
  1560.       If HH=6 and MC=1 Then Inc G(LINE) : If G(LINE)=8 Then G(LINE)=0
  1561.       If HH=7 and MC=1 Then Dec F(LINE) : If F(LINE)=-8 Then F(LINE)=0
  1562.       If HH=8 and MC=1 Then Return 
  1563.  
  1564.    If MC=1 Then Gosub SHAD2 : Gosub SHAD3 : Gosub SHAD4
  1565.  
  1566. Goto SHAD1
  1567.  
  1568. SHAD2:
  1569. 'show shad 
  1570.    Cls 7,6,93 To 110,187
  1571. F=10
  1572. While Errtrap>0
  1573.    Dec F
  1574.    Trap Set Font F
  1575. Wend 
  1576.  
  1577.    Set Font F
  1578.    F=Text Length("Ab0")
  1579.    F=(100-F)/2
  1580.    Ink 6
  1581.    Gr Writing 0 : Text F+F(LINE),138+G(LINE),"Ab0"
  1582.    Ink 1
  1583.    Gr Writing 0 : Text F,138,"Ab0"
  1584. Return 
  1585.  
  1586. SHAD3:
  1587. 'show stad or not
  1588.    If H(LINE)>0 Then Colour 4,$F00 : Colour 5,$FFF
  1589.    If H(LINE)=0 Then Colour 5,$F00 : Colour 4,$FFF
  1590. Return 
  1591.  
  1592. SHAD4:
  1593. 'show colour 
  1594.    Colour 6,CLR(H(LINE))
  1595. Return 
  1596.  
  1597. '------------------------- 
  1598. 'Use standard dialog boxes 
  1599. '------------------------- 
  1600. DAT00:
  1601. 'digit box 
  1602. 'xxx=xpos yyy=ypos rrr=data r returns val ddd=amount of digits 
  1603.  
  1604.    SA$="DIgit 1,"+Str$(XXX)+","+Str$(YYY)+","+Str$(DDD)+","+Str$(RRR)+",1,3,1;"
  1605.    SA$=SA$+"EXit;"
  1606.  
  1607.    Dialog Open 1,SA$ : R=Dialog Run(1)
  1608. Repeat 
  1609.       R=Dialog(1)
  1610. Until R=1
  1611.  
  1612.       R=Rdialog(1,1)
  1613.             Dialog Close 
  1614.  
  1615. Return 
  1616.  
  1617.  
  1618. DAT01:
  1619. 'text box  
  1620. 'xxx=xpos yyy=ypos rrr$=data r$ returns val ddd=amount of digits   
  1621.  
  1622.    SA$="EDit 1,"+Str$(XXX)+","+Str$(YYY)+","+Str$(DDD)+","+Str$(DDD)+",'"+RRR$+"',3,1;"
  1623.    SA$=SA$+"EXit;"
  1624.  
  1625.    Dialog Open 1,SA$ : R=Dialog Run(1)
  1626. Repeat 
  1627.       R=Dialog(1)
  1628. Until R=1
  1629.  
  1630.       R$=Rdialog$(1,1)
  1631.             Dialog Close 
  1632.  
  1633. Return 
  1634.  
  1635.  
  1636. CLIST1:
  1637.    Restore 2000
  1638.    Read COM
  1639. Return 
  1640.  
  1641. CLIST:
  1642.    Restore 2001
  1643. For F=1 To COM
  1644. Read CO$(F),AMIN(F),AMAX(F),BMIN(F),BMAX(F),CMIN(F),CMAX(F),COH$(F)
  1645. Next F
  1646. Return 
  1647.  
  1648. ELIST:
  1649.    Restore 3000
  1650. F=1
  1651. Repeat 
  1652.    Read ER$(F)
  1653.    Inc F
  1654. Until ER$(F-1)="**"
  1655.  
  1656. Return 
  1657.  
  1658. FLIST:
  1659.    Restore 4000
  1660. F=0
  1661. Repeat 
  1662.    Read FX$(F)
  1663.    Inc F
  1664. Until FX$(F-1)="**"
  1665. FXM=F-2
  1666.  
  1667. Return 
  1668.  
  1669.  
  1670. 1000 Data 129,71,219,90,129,97,219,116,129,124,219,143,129,151,219,170
  1671. 1001 Data 129,178,219,197,129,205,219,224,129,232,219,251,129,259,219,279
  1672. 1002 Data 251,71,321,80,251,279,321,288
  1673. 1003 Data 355,71,445,90,355,97,445,116,355,123,445,142,355,149,445,168
  1674. 1004 Data 355,175,445,194,355,201,445,220,355,227,445,246
  1675. 1010 Data 155,69,225,78,154,277,224,287,286,258,316,288,408,258,438,288,286,69,436,251
  1676.  
  1677. 2000 Data 9
  1678. 2001 Data "SCROLL UP",1,5,0,0,0,0,"This will create the scrolling up credits as seen at the end of most programmes."
  1679. 2002 Data "SCROLL ACROSS",1,6,0,255,0,0,"With this the credits will scroll from right to left of the screen.  "
  1680. 2003 Data "PLACE TEXT",1,1000,0,255,0,0,"This will allow credits to be placed on screen one after another."
  1681. 2004 Data "PLACE & MIX",1,1000,0,255,1,65535,"Same as PLACE TEXT but this will disolve from the new text into the old text at the specifed bits at a time."
  1682. 2005 Data "BOUNCE TEXT",1,1000,0,255,12,30,"This creates a text screen which will bounce into place from above."
  1683. 2006 Data "DPAINT ANIM",0,1000,1,200,0,0,"Allows you to load and play a DPAINT animation  file."
  1684. 2007 Data "SCREEN FXS 1",0,0,0,0,1,1000,"This will load, wipe in and out screens."
  1685. 2008 Data "",0,0,0,0,0,0,""
  1686. 2009 Data "",0,0,0,0,0,0,""
  1687. '2010 Data "",0,0,0,0,0,0,"" 
  1688.  
  1689. 2100 Data 159,100,229,109,160,140,229,149
  1690. 2101 Data 158,166,201,188
  1691. 2102 Data 373,106,387,120,393,106,406,120,411,106,425,120,430,106,444,120,373,125,387,139,393,125,406,139,411,125,425,139,430,125,444,139
  1692. 2103 Data 294,114,299,122,294,135,299,143
  1693. 2104 Data 321,114,326,122,321,135,326,143
  1694. 2105 Data 347,114,352,122,347,135,352,143
  1695. 2106 Data 220,203,237,222,243,203,260,222,266,203,283,222
  1696. 2107 Data 341,203,358,222,364,203,380,222,387,203,404,222,411,203,427,222
  1697. 2108 Data 143,210,213,219,144,275,214,284
  1698. 2109 Data 221,275,291,285,298,275,369,285,375,275,445,285
  1699.  
  1700. 2200 Data 266,147,275,158,266,261,275,272,408,268,439,297,232,122,282,134
  1701. 2201 Data 266,147,275,158,266,261,275,272,408,268,439,297,232,122,282,134,388,122,445,134
  1702.  
  1703. 2300 Data 132,77,163,108,175,77,206,108,404,150,435,181,266,154,278,166
  1704. 2301 Data 286,172,298,184,266,190,278,202,247,172,259,184,370,234,415,260
  1705.  
  1706. 2400 Data 252,117,440,130,320,182,370,195,383,182,434,195,321,237,371,250,384,237,434,250,370,268,420,281
  1707. 2401 Data 216,267,327,281
  1708.  
  1709. 3000 Data "Better grab some fonts then so thatyou can continue. (rat key)"
  1710. 3001 Data "Compiling a font list. Mouse key tostart."
  1711. 3002 Data "Not saved. Mouse key to continue."
  1712. 3003 Data "TT2 only supports MED."
  1713. 3004 Data "Out of range."
  1714. 3005 Data "Not a TT2 program!"
  1715. 3006 Data "Delete line.                       Left Rat to Continue                                Right Rat to Cancel"
  1716. 3007 Data "Out of BUFFER SPACE!!!             Increase Buffer."
  1717. 3008 Data "Out of Memory!!!"
  1718. 3009 Data "Program will be lost!!!            Left Rat to Continue                                Right Rat to Cancel"
  1719. 3010 Data "Clear Line.                        Left Rat to Continue                                Right Rat to Cancel"
  1720. 3011 Data "Insert a line.                     Data may be lost!!                  Left Rat to Continue                                Right Rat to Cancel"
  1721. 3999 Data "**","**"
  1722.  
  1723. 4000 Data "X-SHUTTER R"
  1724. 4001 Data "Y-SHUTTER D"
  1725. 4002 Data "X-SHUTTER L"
  1726. 4003 Data "Y-SHUTTER U"
  1727. 4004 Data "RIGHT SLIDE"
  1728. 4005 Data "LEFT SLIDE"
  1729. 4006 Data "MELT DOWN"
  1730. 4007 Data "BOX OUT C"
  1731. 4008 Data "BOX OUT TC"
  1732. 4009 Data "BOX OUT BC"
  1733. 4010 Data "BOX OUT LT"
  1734. 4011 Data "BOX OUT LB"
  1735. 4012 Data "BOX OUT LC"
  1736. 4013 Data "BOX OUT RT"
  1737. 4014 Data "BOX OUT RB"
  1738. 4015 Data "BOX OUT RC"
  1739.  
  1740. 4999 Data "**","**"
  1741.  
  1742.  
  1743. 'the procs for the commands
  1744. TEST:
  1745. 'this justs runs a line  
  1746.  
  1747. Gosub TEST1
  1748.    TIME=Timer
  1749.    F=TIME/3000
  1750.    TIME$=Str$(TIME/3000)+"M:"
  1751.    If F>0 Then TIME=TIME-(F*3000)
  1752.    F=TIME/50
  1753.    TIME$=TIME$+Str$(F)+"S"
  1754. Return 
  1755.  
  1756.  
  1757. TEST1:
  1758.  
  1759. PCONT=0
  1760.  
  1761. 'sorts out the font names with numbers 
  1762. For F=1 To LINES
  1763. For G=1 To BUFF
  1764.    SA1$=FO$(F,G)
  1765.    If Len(SA1$)=0 Then Goto CT9
  1766. SA1=1
  1767. CT7:
  1768.       If Font$(SA1)=SA1$ Then FO(F,G)=SA1 : Set Font SA1 : Goto CT9
  1769.       Inc SA1
  1770.       Goto CT7
  1771. CT9:
  1772. Next G
  1773. Next F
  1774.  
  1775. Timer=0
  1776.    SA1$=PR$(LINE)
  1777.       If SA1$="" Then Set Text 0 : Return 
  1778.  
  1779. For F=1 To COM
  1780.          If CO$(F)=SA1$ Then Goto CT2
  1781. Next F
  1782. Stop 
  1783.  
  1784. CT2:
  1785.  
  1786.    SA1$=Str$(F)
  1787.    SA1=Len(SA1$) : Dec SA1
  1788.    SA$="PRO"+Right$(SA1$,SA1)
  1789.  
  1790. For F=BUFF To 1 Step -1
  1791. If Len(DA$(LINE,F))=0 Then Next F
  1792.    DEND=F
  1793.    DLINE=1
  1794.  
  1795.    Screen Open 7,320,256,8,L : Curs Off : Hide On : Flash Off 
  1796.    For F=0 To 7 : Colour F,CLR(0) : Next F : Colour Back(CLR(0)) : Cls : Wait Vbl 
  1797.    Gosub SA$
  1798.    Set Text 0
  1799. Return 
  1800.  
  1801.  
  1802. PRORUN:
  1803. 'this runs the prog  
  1804.  
  1805. 'sorts out the font names with numbers 
  1806. PCONT=0
  1807. For F=1 To LINES
  1808. For G=1 To BUFF
  1809.    SA1$=FO$(F,G)
  1810.    If Len(SA1$)=0 Then Goto PCT9
  1811. SA1=1
  1812. PCT7:
  1813.       If Font$(SA1)=SA1$ Then FO(F,G)=SA1 : Set Font SA1 : Goto PCT9
  1814.       Inc SA1
  1815.       Goto PCT7
  1816. PCT9:
  1817. Next G
  1818. Next F
  1819.  
  1820.    Screen Close 0
  1821.    Screen Open 7,320,256,8,L : Curs Off : Hide On : Flash Off 
  1822.    For F=0 To 7 : Colour F,CLR(0) : Next F : Colour Back(CLR(0)) : Cls : Wait Vbl 
  1823.    Screen To Front 7
  1824.  
  1825.    If KEYIN$="N" Then Goto PRORUN2
  1826.  
  1827. PRORUN1:
  1828.    Led On 
  1829.    Wait 2
  1830.    Led Off 
  1831.    Wait 2
  1832.    If Inkey$="" Then Goto PRORUN1
  1833.  
  1834. PRORUN2:
  1835.  
  1836. Timer=0
  1837.    If Length(4)<>0 Then Med Play 4
  1838. For PUN=1 To LINES
  1839. LINE=PUN
  1840.    SA1$=PR$(LINE)
  1841. '      If SA1$="" Then Set Text 0 : Return 
  1842.  
  1843. For F=1 To COM
  1844.          If CO$(F)=SA1$ Then Exit 
  1845. Next F
  1846.  
  1847. PCT2:
  1848.  
  1849.    SA1$=Str$(F)
  1850.    SA1=Len(SA1$) : Dec SA1
  1851.    SA$="PRO"+Right$(SA1$,SA1)
  1852.  
  1853. DEND=0
  1854. For F=BUFF To 1 Step -1
  1855. If Len(DA$(LINE,F))<>0 and DEND=0 Then DEND=F
  1856. Next F
  1857.    DLINE=1
  1858.  
  1859.    Trap Gosub SA$
  1860.    Set Text 0
  1861.    If MTET=0 Then Next PUN
  1862.  
  1863. TIME=Timer
  1864.  
  1865. LINE=1
  1866.    If KEYOUT$="N" Then Goto PRORUN20
  1867.  
  1868. PRORUN19:
  1869.    Wait Vbl 
  1870.    If Inkey$="" Then Goto PRORUN19
  1871.  
  1872. PRORUN20:
  1873. Med Stop 
  1874.  
  1875. F=TIME/3000
  1876. TIME$=Str$(TIME/3000)+"M:"
  1877. If F>0 Then TIME=TIME-(F*3000)
  1878. F=TIME/50
  1879. TIME$=TIME$+Str$(F)+"S"
  1880.  
  1881. Return 
  1882.  
  1883.  
  1884. PRO1:
  1885. '--------------
  1886. 'Scroll Up 
  1887. '--------------
  1888. '------
  1889. 'start 
  1890. '------
  1891. If PCONT=1 Then Screen Close 1 : Screen To Front 0
  1892. PCONT=0
  1893.  
  1894. Screen Open 1,320,66,8,Lowres : Hide On : Flash Off : Curs Off : Paper 0
  1895. For F=0 To 7 : Colour F,CLR(F) : Next F
  1896.    Colour Back(CLR(0)) : Cls : Wait Vbl : Rem Screen Hide 1
  1897.  
  1898. Screen Open 0,320,512,8,Lowres : Hide On : Flash Off : Curs Off : Paper 0
  1899.    Colour Back(CLR(0)) : Cls : Wait Vbl 
  1900. 'put the colours on
  1901.  
  1902. 'check for fade in 
  1903. If D(LINE)=0 or D(LINE)=2 Then Goto SLUP100
  1904.  
  1905. For F=0 To 7 : Colour F,CLR(0) : Next F
  1906. Fade E(LINE),CLR(0),CLR(1),CLR(2),CLR(3),CLR(4),CLR(5),CLR(6),CLR(7)
  1907. Goto SLUP150
  1908.  
  1909. SLUP100:
  1910. For F=0 To 7 : Colour F,CLR(F) : Next F
  1911.  
  1912. SLUP150:
  1913.  
  1914. Screen Display 0,,,320,253
  1915.    Screen Offset 0,0,TT+3
  1916. Autoback 0
  1917. Update Off 
  1918.  
  1919.    SP=A(LINE)
  1920.    H=Val(Mid$(Font$(FO(LINE,DLINE)),31,3)) : Rem**** Work out font height ****
  1921.    SA=0
  1922.    SA3=G(LINE)
  1923.    If SA3<0 Then SA=Abs(SA3) : SA3=0
  1924.    H=H+Abs(G(LINE))
  1925.    TT=0 : TT2=257
  1926. Screen 1
  1927. SLUP1:
  1928.    Z$=DA$(LINE,DLINE)
  1929.    Ink IN(LINE,DLINE)
  1930. Set Font(FO(LINE,DLINE)) : Set Text ST(LINE,DLINE)
  1931.    Ink H(LINE)
  1932.    Gr Writing 0
  1933.       SA2=TAT(LINE,DLINE)
  1934.       If SA2=1 Then SA1=(160-(Text Length(Z$))/2)
  1935.       If SA2=2 Then SA1=318-(Text Length(Z$))
  1936.          If SA2=1 and H(LINE)>0 Then Text F(LINE)+SA1,Text Base+SA3,Z$
  1937.          If SA2=0 and H(LINE)>0 Then Text 2+F(LINE),Text Base+SA3,Z$
  1938.          If SA2=2 and H(LINE)>0 Then Text F(LINE)+SA1,Text Base+SA3,Z$
  1939.    Ink IN(LINE,DLINE)
  1940.    Gr Writing 0
  1941.          If SA2=1 Then Text SA1,Text Base+SA,Z$
  1942.          If SA2=0 Then Text 2,Text Base+SA,Z$
  1943.          If SA2=2 Then Text SA1,Text Base+SA,Z$
  1944.    For F=0 To H
  1945.    Screen Copy 1,0,F,320,F+1 To 0,0,TT
  1946.    Screen Copy 1,0,F,320,F+1 To 0,0,TT2
  1947.    Screen Copy 1,0,64,320,65 To 1,0,F
  1948.    Wait Vbl 
  1949.    Screen Offset 0,0,TT+3
  1950.    Inc TT : Inc TT2
  1951.    If TT=257 Then TT=0 : TT2=257
  1952.    If SP>0 Then Wait SP
  1953.    Next F
  1954.  
  1955.    Gosub MTEST : If MTET>0 Then Return 
  1956.          Inc DLINE : If DLINE>DEND Then Goto SLUP300
  1957. Goto SLUP1
  1958.  
  1959. SLUP300:
  1960.  
  1961. Screen 0
  1962. SA=0
  1963. If SP=0 Then SP=1 : SA=1
  1964. G1=255/H/SP/2
  1965. For G=0 To(255/H)/SP
  1966. 'If SP>0 and SA=0 Then Wait 1
  1967.    For F=0 To H
  1968.    Screen Copy 1,0,F,320,F+1 To 0,0,TT
  1969.    Screen Copy 1,0,F,320,F+1 To 0,0,TT2
  1970.    Screen Copy 1,0,64,320,65 To 1,0,F
  1971.    Wait Vbl 
  1972.    Screen Offset 0,0,TT+3
  1973.    Inc TT : Inc TT2
  1974.    If TT=257 Then TT=0 : TT2=257
  1975.    Wait SP
  1976.    Next F
  1977.    If G=G1 and D(LINE)=2 or G=G1 and D(LINE)=3 Then Fade E(LINE) To 7
  1978. Next G
  1979.  
  1980. Return 
  1981.  
  1982.  
  1983. PRO2:
  1984.  
  1985. '--------------
  1986. 'Scroll across 
  1987. '--------------
  1988. If PCONT=1 Then Screen Close 1 : Screen To Front 0
  1989. PCONT=0
  1990. Screen Open 1,104,104,8,Lowres : Hide On : Flash Off : Curs Off : Paper 0 : 
  1991.    Colour Back(CLR(0)) : Cls : Wait Vbl 
  1992.    For F=0 To 7 : Colour F,CLR(F) : Next F : Wait Vbl : Screen Hide 1
  1993. Screen Open 0,642,320,8,Lowres : Hide On : Flash Off : Curs Off : Paper 0
  1994.    Colour Back(CLR(0)) : Cls : Wait Vbl 
  1995. Screen Display 0,128,-30,318,320
  1996. Screen To Front 0
  1997. 'put the colours on
  1998.  
  1999. 'check for fade in 
  2000. If D(LINE)=0 or D(LINE)=2 Then Goto XLUP100
  2001.  
  2002. For F=0 To 7 : Colour F,CLR(0) : Next F
  2003. Fade E(LINE),CLR(0),CLR(1),CLR(2),CLR(3),CLR(4),CLR(5),CLR(6),CLR(7)
  2004. Goto XLUP150
  2005.  
  2006. XLUP100:
  2007. For F=0 To 7 : Colour F,CLR(F) : Next F
  2008.  
  2009. XLUP150:
  2010.  
  2011. SP=A(LINE)
  2012. SP1=0
  2013. If SP=1 Then SP=2 : SP1=1
  2014. If SP=2 Then SP=2
  2015. If SP=3 Then SP=3
  2016. If SP=4 Then SP=4
  2017. If SP=5 Then SP=5
  2018. If SP=6 Then SP=8
  2019.  
  2020. POS=B(LINE)
  2021. TT=0 : TT2=321
  2022. '------
  2023. 'start 
  2024. '------
  2025.  
  2026. Screen 1
  2027. XUP90:
  2028.  
  2029.    YES=0
  2030.    Z$=DA$(LINE,DLINE)
  2031.    KIN=IN(LINE,DLINE)
  2032.    Ink KIN
  2033.    Set Font(FO(LINE,DLINE)) : Set Text ST(LINE,DLINE)
  2034.    R=Text Length("_")
  2035.    PLEN=Len(Z$)
  2036.    ST=1
  2037.    Gosub XUP1
  2038.    If MTET>0 Then Goto XUP300
  2039.    Inc DLINE : If DLINE>DEND Then Goto XUP300
  2040. Goto XUP90
  2041.  
  2042.  
  2043. XUP1:
  2044.             O$=Mid$(Z$,ST,1)
  2045.          Gr Writing 0
  2046.          If H(LINE)>0 Then Ink H(LINE) : Gosub XUP2
  2047.          Ink KIN : Text 0+SA1,70+Text Base+SA2,O$
  2048.          R=Text Length(O$)
  2049.          If F(LINE)>0 Then Add R,F(LINE)
  2050.  
  2051.    SA4=SP-1
  2052.        For F=0 To R Step SA4
  2053.    Screen Offset 0,TT+(3*SP),0
  2054. Wait Vbl : Update 
  2055.       Screen Copy 1,F,0,SP+F+1,100 To 0,TT,POS
  2056.       Screen Copy 1,F,0,SP+F+1,100 To 0,TT2,POS
  2057.       Screen Copy 1,96-SA4,0,100,100 To 1,F,0
  2058.  
  2059.    Add TT,SA4 : Add TT2,SA4
  2060.    If TT>320 Then G=TT : TT=G-321 : TT2=G
  2061.       If SP1>0 Then Wait SP1
  2062.    Next F
  2063.  
  2064.    Gosub MTEST : If MTET>0 Then Return 
  2065.             ST=ST+1 : If ST>PLEN Then Return 
  2066. Goto XUP1
  2067.  
  2068. XUP2:
  2069.  
  2070.    SA1=0
  2071.    SA2=0
  2072.    SA3=0
  2073.  
  2074.    If F(LINE)<0 Then SA1=-F(LINE) : SA3=1
  2075.    If G(LINE)<0 Then SA2=-G(LINE) : SA3=1
  2076.  
  2077.    If SA3=1 Then Text 0,70+Text Base+SA2,O$
  2078.    If SA3=0 Then Text F(LINE),70+Text Base+G(LINE),O$
  2079.  
  2080. Return 
  2081.  
  2082. XUP300:
  2083.  
  2084. SA2=0
  2085.  
  2086. XUP301:
  2087.  
  2088.    SA4=SP-1
  2089.        For F=0 To R Step SA4
  2090.    Screen Offset 0,TT+(3*SP),0
  2091. Wait Vbl : Update 
  2092.       Screen Copy 1,F,0,SP+F+1,100 To 0,TT,POS
  2093.       Screen Copy 1,F,0,SP+F+1,100 To 0,TT2,POS
  2094.       Screen Copy 1,96-SA4,0,100,100 To 1,F,0
  2095.  
  2096.    Add TT,SA4 : Add TT2,SA4
  2097.    If TT>320 Then G=TT : TT=G-321 : TT2=G
  2098.       If SP1>0 Then Wait SP1
  2099.    Next F
  2100.  
  2101.    If SA2>120/SP and D(LINE)=2 or SA2>120/SP and D(LINE)=3 Then Screen 0 : Fade E(LINE) To 7 : Screen 1
  2102.  
  2103. Add SA2,R
  2104. If SA2>=320 Then Return 
  2105. Goto XUP301
  2106.  
  2107. Return 
  2108.  
  2109. PRO3:
  2110. '----------------------- 
  2111. 'Appear between screens2   
  2112. '----------------------- 
  2113.    If PCONT=1 Then Goto LUP1
  2114. Auto View Off 
  2115. Screen Open 0,320,256,8,Lowres : Hide On : Flash Off : Curs Off : For F=0 To 7 : Colour F,CLR(F) : Next F : Paper 0 : Colour Back(CLR(0)) : Wait Vbl : Cls 
  2116. Screen Open 1,320,256,8,Lowres : Hide On : Flash Off : Curs Off : For F=0 To 7 : Colour F,CLR(F) : Next F : Paper 0 : Colour Back(CLR(0)) : Wait Vbl : Cls 
  2117.  
  2118.    '------
  2119.    'start 
  2120.    '------
  2121.    LUP1:
  2122.    Screen To Front 0
  2123.    Screen 1 : Cls : Wait Vbl 
  2124.    Screen Hide 1
  2125.    SSR=B(LINE)
  2126. Y10:
  2127.    Z$=DA$(LINE,DLINE)
  2128.    KIN=IN(LINE,DLINE)
  2129.    Ink KIN
  2130.    Set Font(FO(LINE,DLINE)) : Set Text ST(LINE,DLINE)
  2131.    Gosub PLUP290
  2132.    Gosub MTEST
  2133.    If MTET>0 Then Goto PLUP300
  2134.    Inc DLINE : If DLINE>DEND Then Goto PLUP300
  2135. Goto Y10
  2136.  
  2137. PLUP290:
  2138.       H=Val(Mid$(Font$(FO(LINE,DLINE)),31,3)) : Rem**** Work out font height ****
  2139.       Gr Writing 0
  2140.    Ink H(LINE)
  2141.       If TAT(LINE,DLINE)=1 and H(LINE)>0 Then Text F(LINE)+160-(Text Length(Z$))/2,SSR+Text Base+G(LINE),Z$
  2142.       If TAT(LINE,DLINE)=0 and H(LINE)>0 Then Text F(LINE)+2,SSR+Text Base+G(LINE),Z$
  2143.       If TAT(LINE,DLINE)=2 and H(LINE)>0 Then Text F(LINE)+318-(Text Length(Z$)),SSR+Text Base+G(LINE),Z$
  2144.    Ink KIN
  2145.       If TAT(LINE,DLINE)=1 Then Text 160-(Text Length(Z$))/2,SSR+Text Base,Z$
  2146.       If TAT(LINE,DLINE)=0 Then Text 2,SSR+Text Base,Z$
  2147.       If TAT(LINE,DLINE)=2 Then Text 318-(Text Length(Z$)),SSR+Text Base,Z$
  2148.       SSR=SSR+4+H
  2149. Return 
  2150.  
  2151. PLUP300:
  2152. 'put the colours on
  2153.  
  2154. 'check for fade in 
  2155.  
  2156. Auto View On 
  2157. Screen To Front 0 : Screen 0 : Wait Vbl 
  2158. If D(LINE)=0 or D(LINE)=2 Then Goto PLUP100
  2159.  
  2160. For F=0 To 7 : Colour F,CLR(0) : Next F
  2161. Fade E(LINE),CLR(0),CLR(1),CLR(2),CLR(3),CLR(4),CLR(5),CLR(6),CLR(7)
  2162. Goto PLUP150
  2163.  
  2164. PLUP100:
  2165. For F=0 To 7 : Colour F,CLR(F) : Next F
  2166.  
  2167. PLUP150:
  2168.    If PR$(LINE)="PLACE TEXT" Then Screen Copy 1 To 0
  2169.    If PR$(LINE)="PLACE & MIX" Then Appear 1 To 0,C(LINE)
  2170.    If PR$(LINE)="BOUNCE TEXT" Then Gosub PRO5A
  2171.    SP=A(LINE)
  2172.    Wait SP
  2173.    If D(LINE)=3 or D(LINE)=2 Then Fade E(LINE) To 7
  2174.    Wait E(LINE)*20
  2175. PCONT=1
  2176.  
  2177. Return 
  2178.  
  2179.  
  2180. PRO4:
  2181. 'same as pro3
  2182. Gosub PRO3
  2183. Return 
  2184.  
  2185.  
  2186. PRO5:
  2187. 'same as pro3
  2188. Gosub PRO3
  2189. Return 
  2190.  
  2191. PRO5A:
  2192.  
  2193. SCRP=C(LINE)
  2194. XX=42 : YY=-1
  2195. BBUP4:
  2196.       Screen Display 0,,XX,, : Wait Vbl 
  2197.       YY=YY-1
  2198.       If XX<-220 Then Goto BBUP5
  2199.       XX=XX+YY
  2200. Goto BBUP4
  2201.  
  2202. PRO6:
  2203.  
  2204.    Screen Open 0,320,256,8,Lowres : Hide On : Flash Off : Curs Off : For F=0 To 7 : Colour F,CLR(F) : Next F : Paper 0 : Colour Back(CLR(0)) : Wait Vbl : Cls 
  2205.    RRR$=DA$(LINE,1)
  2206.  
  2207.    Open In 1,RRR$
  2208.    Trap L=Frame Length(1,1000)
  2209.    If Errtrap>0 Then Gosub MESS2 : Close 1 : Return 
  2210.    Trap Med Stop 
  2211.    Trap Reserve As Work 5,L
  2212.    If Errtrap>0 Then Close 1 : Return 
  2213.    L=Frame Load(1 To 5,1000)
  2214.    Close 1
  2215.    Trap Med Cont 
  2216.  
  2217.    For G=1 To B(LINE)
  2218.       P=Frame Play(5,1,0)
  2219.       Double Buffer 
  2220.       For F=2 To L-1
  2221.          P=Frame Play(P,1)
  2222.          Screen Swap 
  2223.          Wait Frame Param+1
  2224.          If A(LINE)>0 Then Wait A(LINE)
  2225.       Next F
  2226.    Next G
  2227.  
  2228. Return 
  2229.  
  2230. PRO7:
  2231.  
  2232. Trap Screen Close 0
  2233. Trap Screen Close 1
  2234.  
  2235.    Trap Load Iff DA$(LINE,1),1
  2236.       If Errtrap>0 Then Gosub MESS2 : Return 
  2237.    SA1=Colour(0)
  2238.    Screen Hide 1
  2239.    Trap Load Iff DA$(LINE,1),0
  2240.    Screen Hide 0
  2241.    Cls 0
  2242.    Screen 7 : For F=0 To 7 : Colour F,SA1 : Next F : Colour Back(SA1) : Cls : Wait Vbl 
  2243.    Screen 0
  2244.    Wait Vbl 
  2245.    SA1=Screen Width
  2246.    SA2=Screen Height
  2247.    Screen Show 0
  2248.    Screen Show 1
  2249.    Screen To Front 0
  2250.    Screen 0
  2251.    Wait Vbl 
  2252.  
  2253.    SA1$=Str$(A(LINE))
  2254.    SA3=Len(SA1$) : Dec SA3
  2255.    SA$="WIPE"+Right$(SA1$,SA3)
  2256.       YES=0
  2257.       Gosub SA$
  2258.  
  2259.       Screen 1 : Cls 0
  2260.       Screen 0
  2261.    Wait C(LINE)
  2262.  
  2263.    SA1$=Str$(B(LINE))
  2264.    SA3=Len(SA1$) : Dec SA3
  2265.    SA$="WIPE"+Right$(SA1$,SA3)
  2266.       Gosub SA$
  2267.  
  2268. Trap Screen Close 0
  2269. Trap Screen Close 1
  2270. PCONT=0
  2271.    Screen 7 : For F=0 To 7 : Colour F,CLR(0) : Next F : Colour Back(CLR(0)) : Cls : Wait Vbl 
  2272.  
  2273. Return 
  2274.  
  2275. WIPE0:
  2276.  
  2277.    For F=0 To SA1 Step 2
  2278.    Screen Copy 1,F,0,F+2,SA2 To 0,F,0
  2279.    Wait Vbl 
  2280.    Next F
  2281.  
  2282. Return 
  2283.  
  2284. WIPE1:
  2285.  
  2286.    For F=0 To SA2 Step 2
  2287.    Screen Copy 1,0,F,SA1,F+2 To 0,0,F
  2288.    Wait Vbl 
  2289.    Next F
  2290.  
  2291. Return 
  2292.  
  2293. WIPE2:
  2294.  
  2295.    For F=SA1-2 To 0 Step -2
  2296.    Screen Copy 1,F,0,F+2,SA2 To 0,F,0
  2297.    Wait Vbl 
  2298.    Next F
  2299.  
  2300. Return 
  2301.  
  2302. WIPE3:
  2303.  
  2304.    For F=SA2-2 To 0 Step -2
  2305.    Screen Copy 1,0,F,SA1,F+2 To 0,0,F
  2306.    Wait Vbl 
  2307.    Next F
  2308.  
  2309. Return 
  2310.  
  2311. WIPE4:
  2312.  
  2313.    For F=SA1-2 To 0 Step -2
  2314.    Screen Copy 1,F,0,SA1,SA2 To 0,0,0
  2315.    Wait Vbl 
  2316.    Next F
  2317.  
  2318. Return 
  2319.  
  2320. WIPE5:
  2321.  
  2322.    For F=0 To SA1 Step 2
  2323.    Screen Copy 1,0,0,F,SA2 To 0,SA1-F,0
  2324.    Wait Vbl 
  2325.    Next F
  2326.  
  2327. Return 
  2328.  
  2329. WIPE6:
  2330.  
  2331. SA4=0
  2332. Repeat 
  2333.    For F=0 To SA1 Step 4
  2334.    SA3=Rnd(8)+SA4
  2335.    If SA3>SA2 Then SA3=SA2
  2336.    Screen Copy 1,F,0,F+4,SA3 To 0,F,0
  2337.    Next F
  2338. Add SA4,8
  2339. Until SA4=SA2
  2340.    For F=0 To SA1 Step 4
  2341.    Screen Copy 1,F,0,F+4,SA2 To 0,F,0
  2342.    Next F
  2343. Return 
  2344.  
  2345. WIPE7:
  2346.  
  2347.    SA3=SA1/2
  2348.    SA4=SA2/2
  2349.    SA5=2 : SA6=2
  2350.  
  2351. WP71:
  2352.  
  2353.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2354. '   Wait Vbl 
  2355.    Inc SA5 : If SA5>SA3 Then SA5=SA3
  2356.    Inc SA6 : If SA6>SA4 Then SA6=SA4
  2357.       If SA5=SA3 and SA6=SA4 Then Goto WP72
  2358. Goto WP71
  2359.  
  2360. WP72:
  2361.  
  2362. Return 
  2363.  
  2364. WIPE8:
  2365.  
  2366.    SA3=SA1/2
  2367.    SA4=8
  2368.    SA5=2 : SA6=2
  2369.  
  2370. WP81:
  2371.  
  2372.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2373. '   Wait Vbl 
  2374.    Inc SA5 : If SA5>SA3 Then SA5=SA3
  2375.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2376.       If SA5=SA3 and SA6=SA2 Then Goto WP82
  2377. Goto WP81
  2378.  
  2379. WP82:
  2380.  
  2381. Return 
  2382.  
  2383. WIPE9:
  2384.  
  2385.    SA3=SA1/2
  2386.    SA4=SA2-2
  2387.    SA5=2 : SA6=2
  2388.  
  2389. WP91:
  2390.  
  2391.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2392. '   Wait Vbl 
  2393.    Inc SA5 : If SA5>SA3 Then SA5=SA3
  2394.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2395.       If SA5=SA3 and SA6=SA2 Then Goto WP92
  2396. Goto WP91
  2397.  
  2398. WP92:
  2399.  
  2400. Return 
  2401.  
  2402. WIPE10:
  2403.  
  2404.    SA3=2
  2405.    SA4=2
  2406.    SA5=2 : SA6=2
  2407.  
  2408. WP101:
  2409.  
  2410.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2411. '   Wait Vbl 
  2412.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2413.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2414.       If SA5=SA1 and SA6=SA2 Then Goto WP102
  2415. Goto WP101
  2416.  
  2417. WP102:
  2418.  
  2419. Return 
  2420.  
  2421. WIPE11:
  2422.  
  2423.    SA3=2
  2424.    SA4=SA2-2
  2425.    SA5=2 : SA6=2
  2426.  
  2427. WP111:
  2428.  
  2429.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2430. '   Wait Vbl 
  2431.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2432.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2433.       If SA5=SA1 and SA6=SA2 Then Goto WP112
  2434. Goto WP111
  2435.  
  2436. WP112:
  2437.  
  2438. Return 
  2439.  
  2440. WIPE12:
  2441.  
  2442.    SA3=2
  2443.    SA4=SA2/2
  2444.    SA5=2 : SA6=2
  2445.  
  2446. WP121:
  2447.  
  2448.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2449. '   Wait Vbl 
  2450.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2451.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2452.       If SA5=SA1 and SA6=SA2 Then Goto WP122
  2453. Goto WP121
  2454.  
  2455. WP122:
  2456.  
  2457. Return 
  2458.  
  2459. WIPE13:
  2460.  
  2461.    SA3=SA1-2
  2462.    SA4=2
  2463.    SA5=2 : SA6=2
  2464.  
  2465. WP131:
  2466.  
  2467.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2468. '   Wait Vbl 
  2469.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2470.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2471.       If SA5=SA1 and SA6=SA2 Then Goto WP132
  2472. Goto WP131
  2473.  
  2474. WP132:
  2475.  
  2476. Return 
  2477.  
  2478. WIPE14:
  2479.  
  2480.    SA3=SA1-2
  2481.    SA4=SA2-2
  2482.    SA5=2 : SA6=2
  2483.  
  2484. WP141:
  2485.  
  2486.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2487. '   Wait Vbl 
  2488.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2489.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2490.       If SA5=SA1 and SA6=SA2 Then Goto WP142
  2491. Goto WP141
  2492.  
  2493. WP142:
  2494.  
  2495. Return 
  2496.  
  2497. WIPE15:
  2498.  
  2499.    SA3=SA1-2
  2500.    SA4=SA2/2
  2501.    SA5=2 : SA6=2
  2502.  
  2503. WP151:
  2504.  
  2505.    Screen Copy 1,SA3-SA5,SA4-SA6,SA3+SA5,SA4+SA6 To 0,SA3-SA5,SA4-SA6
  2506. '   Wait Vbl 
  2507.    Inc SA5 : If SA5>SA1 Then SA5=SA1
  2508.    Inc SA6 : If SA6>SA2 Then SA6=SA2
  2509.       If SA5=SA1 and SA6=SA2 Then Goto WP152
  2510. Goto WP151
  2511.  
  2512. WP152:
  2513.  
  2514. Return 
  2515.  
  2516. BBUP5:
  2517.  
  2518.       Screen Copy 1 To 0
  2519. '--------- 
  2520. 'do bounce 
  2521. '--------- 
  2522. XX=-220 : YY=1
  2523. BBUP2:
  2524.       Screen Display 0,,XX,, : Wait Vbl 
  2525.          If YY>0 Then YY=YY+1 : If YY>SCRP Then YY=SCRP
  2526.          If YY<0 Then YY=YY+1
  2527.          If XX=42 and YY=0 Then Goto BBUP3
  2528.          If YY=0 Then YY=1
  2529.       XX=XX+YY : If XX>42 and YY>0 Then YY=-YY
  2530. Goto BBUP2
  2531.  
  2532. BBUP3:
  2533. Return 
  2534.  
  2535.  
  2536. 'press the mouse key to exit 
  2537. MTEST:
  2538. MTET=Mouse Key
  2539. Return 
  2540.  
  2541. 'error printing routine
  2542. Procedure MESS
  2543.  
  2544. Unpack 13 To 1
  2545.  
  2546. Cls 3,9,57 To 311,207
  2547. Ink 1 : Gr Writing 0 : Text 16,68,Mid$(ER$(ERR),0,35)
  2548. Ink 1 : Gr Writing 0 : Text 16,76,Mid$(ER$(ERR),36,35)
  2549. Ink 1 : Gr Writing 0 : Text 16,84,Mid$(ER$(ERR),72,35)
  2550. Ink 1 : Gr Writing 0 : Text 16,92,Mid$(ER$(ERR),108,35)
  2551.  
  2552.    If ERR=5 Then Gosub MELU1
  2553. MC=0
  2554. While MC=0
  2555.    MC=Mouse Click
  2556.    Wait Vbl 
  2557. Wend 
  2558.  
  2559. Screen Close 1
  2560.  
  2561. Pop Proc
  2562.  
  2563. MELU1:
  2564.    Text 80,84,"Minimum="+Str$(ERMI)
  2565.    Text 80,92,"Maximum="+Str$(ERMA)
  2566. Return 
  2567.  
  2568. End Proc
  2569.  
  2570. MESS2:
  2571.    Unpack 13 To 1
  2572. Cls 3,9,57 To 311,207
  2573. Ink 1 : Gr Writing 0 : Text 16,68,Err$(Errtrap)
  2574. MC=0
  2575. While MC=0
  2576.    MC=Mouse Click
  2577.    Wait Vbl 
  2578. Wend 
  2579.  
  2580. Screen Close 1
  2581. Return 
  2582.  
  2583. Procedure _GET_FILE
  2584.    Trap Kill "ram:test"
  2585.    Trap Dir$=REQ2$
  2586.    Wait 10
  2587.    Amos To Back 
  2588.    Wait 10
  2589.    If Not Exist("ram:req.1") Then Exec "c:copy tt2:tt2_system/req.1 ram:"
  2590.    Exec "ram:req.1 "+REQ1$+" "+REQ2$+" "+REQ3$+" "+REQ4$
  2591.    Wait 10
  2592.    Amos To Front 
  2593.    Reserve As Data 65000,1024
  2594.    J=Start(65000)
  2595.    Bload "ram:test",J
  2596.    REQ$=Peek$(J,1024,Chr$(10))
  2597.    Erase 65000
  2598. End Proc
  2599.  
  2600. EERR99:
  2601. Resume Next